Asterisk but without FreePBX ...?

Hey guys,

so, i tried the tutorial Tutorial - Jitsi / Jigasi & FreePBX integration. Along with Asterisk IVR to use Jitsi conference mapper API to get asterisk and jigasi working…

But i dont have (and i dont want to have) FreePBX, just a plain Asterisk installation…

The problem is, i dont know how to create the extension created in step 1…
Also step 8 seems to be problematic, but at least i got a IVR running already.

What i have done so far:

Im running a Jitsi/Jigasi installation on a remote Server accessable by a public IP/Domain
Im running a Asterisk server on a raspberry pi 3b on my local network with the required ports opened. (using DynDNS/FritzDNS)

I created a IP-Telephone with a number in my router and created a sip account in asterisk using the credentials. (works)
If i call the number, asterisk is answering and i started working on a dialplan, this also works…

Now i probably need to connect Jigasi to Asterisk properly, but i cant get my head around this issue :smiley:

the sip-communicator.properties is: https://pastebin.com/jT2rexym

the error i keep getting in the jigasi logs are:

jigasi_1   | net.java.sip.communicator.service.protocol.OperationFailedException: Could not send out the register request!
jigasi_1   |    at net.java.sip.communicator.impl.protocol.sip.SipRegistrarConnection.register(SipRegistrarConnection.java:346)
jigasi_1   |    at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderServiceSipImpl.registerUsingNextAddress(ProtocolProviderServiceSipImpl.java:2737)
jigasi_1   |    at net.java.sip.communicator.impl.protocol.sip.SipRegistrarConnection.processTimeout(SipRegistrarConnection.java:1108)
jigasi_1   |    at net.java.sip.communicator.impl.protocol.sip.ProtocolProviderServiceSipImpl.processTimeout(ProtocolProviderServiceSipImpl.java:904)
jigasi_1   |    at net.java.sip.communicator.impl.protocol.sip.SipStackSharing.processTimeout(SipStackSharing.java:839)
jigasi_1   |    at gov.nist.javax.sip.EventScanner.deliverTimeoutEvent(EventScanner.java:401)
jigasi_1   |    at gov.nist.javax.sip.EventScanner.deliverEvent(EventScanner.java:150)
jigasi_1   |    at gov.nist.javax.sip.SipProviderImpl.handleEvent(SipProviderImpl.java:185)
jigasi_1   |    at gov.nist.javax.sip.SipProviderImpl.transactionErrorEvent(SipProviderImpl.java:968)
jigasi_1   |    at gov.nist.javax.sip.stack.SIPTransactionImpl.raiseErrorEvent(SIPTransactionImpl.java:960)
jigasi_1   |    at gov.nist.javax.sip.stack.SIPClientTransactionImpl.fireTimeoutTimer(SIPClientTransactionImpl.java:1177)
jigasi_1   |    at gov.nist.javax.sip.stack.SIPTransactionImpl.fireTimer(SIPTransactionImpl.java:661)
jigasi_1   |    at gov.nist.javax.sip.stack.SIPClientTransactionImpl$TransactionTimer.runTask(SIPClientTransactionImpl.java:259)
jigasi_1   |    at gov.nist.javax.sip.stack.timers.DefaultSipTimer$DefaultTimerTask.run(DefaultSipTimer.java:67)
jigasi_1   |    at java.util.TimerThread.mainLoop(Timer.java:555)
jigasi_1   |    at java.util.TimerThread.run(Timer.java:505)
jigasi_1   | Caused by: javax.sip.SipException: Protocol family unavailable
jigasi_1   |    at gov.nist.javax.sip.stack.SIPClientTransactionImpl.sendRequest(SIPClientTransactionImpl.java:1069)
jigasi_1   |    at net.java.sip.communicator.impl.protocol.sip.SipRegistrarConnection.register(SipRegistrarConnection.java:330)
jigasi_1   |    ... 15 more
jigasi_1   | Caused by: java.net.SocketException: Protocol family unavailable
jigasi_1   |    at java.net.PlainDatagramSocketImpl.send(Native Method)
jigasi_1   |    at java.net.DatagramSocket.send(DatagramSocket.java:693)
jigasi_1   |    at gov.nist.javax.sip.stack.UDPMessageChannel.sendMessage(UDPMessageChannel.java:843)
jigasi_1   |    at gov.nist.javax.sip.stack.MessageChannel.sendMessage(MessageChannel.java:281)
jigasi_1   |    at gov.nist.javax.sip.stack.SIPTransactionImpl.sendMessage(SIPTransactionImpl.java:892)
jigasi_1   |    at gov.nist.javax.sip.stack.SIPClientTransactionImpl.sendMessage(SIPClientTransactionImpl.java:475)
jigasi_1   |    at gov.nist.javax.sip.stack.SIPClientTransactionImpl.sendRequest(SIPClientTransactionImpl.java:1062)
jigasi_1   |    ... 16 more

My Dialplan (extensions.conf) looks like this currently:

[phones]

exten => asterisk,1,Answer()
#same => n,Set(CHANNEL(language)=de)
same => n,Wait(2)
same => n,Set(Jitsi=jitsi)
same => n,Read(roomid,conf-getpin, 10,,,10)
same => n,SayDigits(${roomid})
same => n,Set(CURL_RESULT=${SHELL(curl --silent https://jitsi-api.jitsi.net/conferenceMapper?id=${roomid} | sed -e 's/.*"conference":"\(.*\)@.*/\1/')})
same => n,Verbose(0, ${CURL_RESULT})

same => n,SIPAddHeader(Jitsi-Conference-Room: ${CURL_RESULT})
same => n,Set(__rnum=${RAND()})
same => n,Dial(SIP/${Jitsi}, 3)

Learning to swim from the deep end, I like it :wink:

Extension configuration is placed in sip.conf, here’s an example of my Jitsi extension:

[888]
deny=0.0.0.0/0.0.0.0
disallow=all
secret=PASSWORD-HERE
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
defaultuser=
trustrpid=yes
user_eq_phone=no
sendrpid=pai
type=friend
session-timers=accept
nat=no
port=5060
qualify=yes
qualifyfreq=60
transport=udp
avpf=no
force_avp=no
icesupport=no
rtcp_mux=no
encryption=no
namedcallgroup=
namedpickupgroup=
allow=g722
dial=SIP/888
accountcode=
permit=0.0.0.0/0.0.0.0
callerid=Jitsi <888>
recordonfeature=apprecord
recordofffeature=apprecord
callcounter=yes
faxdetect=no
cc_monitor_policy=generic