I’d like to configure a simple setup using 2 asterisk servers.
The first server A at 192.168.1.101, is configured to accept any extension, playback a sound clip, and hangup. This works perfectly if I dial into A using a sip phone.
pjsip.conf
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
[receiver]
type=endpoint
context=receiver-answer
auth=receiver
aors=receiver
allow=all
direct_media=no
[receiver]
type=auth
auth_type=userpass
username=receiver
password=receiver
[receiver]
type=aor
max_contacts=10
[receiver]
type=identify
endpoint=receiver
match=192.168.1.102
extensions.conf
[receiver-answer]
exten => _.!,1,Verbose(0, "${EXTEN} answered")
same => n,Set(NUMBER=${EXTEN})
same => n,Answer()
same => n,Playback(xencall/kennedy-inaugural-speech-15-min)
same => n,Hangup()
exten => h,1,Verbose(0, "${NUMBER} hung up (cause: ${HANGUPCAUSE})")
same => n,Hangup()
The second server B at 192.168.1.102, is configured to accept any extension and route it to A, so that the result will be the same as above (i.e. the caller will hear the sound clip and then auto-hangup).
pjsip.conf
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
[sender]
type=endpoint
context=sender-forward
auth=sender
aors=sender
allow=all
direct_media=no
[sender]
type=auth
auth_type=userpass
username=sender
password=sender
[sender]
type=aor
max_contacts=10
[receiver]
type=endpoint
outbound_auth=receiver
aors=receiver
allow=all
direct_media=no
[receiver]
type=auth
auth_type=userpass
username=receiver
password=receiver
[receiver]
type=aor
contact=sip:192.168.1.101:5060
extensions.conf
[sender-forward]
exten => _.!,1,Verbose(0, "${EXTEN} forwarded")
same => n,Set(NUMBER=${EXTEN})
same => n,Dial(PJSIP/${EXTEN}@receiver)
same => n,Playback(invalid)
same => n,Hangup()
exten => h,1,Verbose(0, "${NUMBER} hung up (cause: ${HANGUPCAUSE})")
same => n,Hangup()
But when I use a SIP phone to call into B, I get disconnected immediately. These are the logs.
A
== Setting global variable 'SIPDOMAIN' to '192.168.1.101'
-- Executing [002@receiver-answer:1] Verbose("PJSIP/receiver-00000003", "0, "002 answered"") in new stack
"002 answered"
-- Executing [002@receiver-answer:2] Set("PJSIP/receiver-00000003", "NUMBER=002") in new stack
-- Executing [002@receiver-answer:3] Answer("PJSIP/receiver-00000003", "") in new stack
== Spawn extension (receiver-answer, 002, 3) exited non-zero on 'PJSIP/receiver-00000003'
-- Executing [h@receiver-answer:1] Verbose("PJSIP/receiver-00000003", "0, "002 hung up (cause: 127)"") in new stack
"002 hung up (cause: 127)"
-- Executing [h@receiver-answer:2] Hangup("PJSIP/receiver-00000003", "") in new stack
== Spawn extension (receiver-answer, h, 2) exited non-zero on 'PJSIP/receiver-00000003'
B
== Setting global variable 'SIPDOMAIN' to '192.168.1.102'
-- Executing [002@sender-forward:1] Verbose("PJSIP/sender-00000023", "0, "002 forwarded"") in new stack
"002 forwarded"
-- Executing [002@sender-forward:2] Set("PJSIP/sender-00000023", "NUMBER=002") in new stack
-- Executing [002@sender-forward:3] Dial("PJSIP/sender-00000023", "PJSIP/002@receiver") in new stack
-- Called PJSIP/002@receiver
-- PJSIP/receiver-00000024 answered PJSIP/sender-00000023
-- Channel PJSIP/receiver-00000024 joined 'simple_bridge' basic-bridge <b2905cff-fa9d-4d84-9192-f5439d55ffda>
-- Channel PJSIP/sender-00000023 joined 'simple_bridge' basic-bridge <b2905cff-fa9d-4d84-9192-f5439d55ffda>
[May 30 22:32:06] WARNING[1384]: res_pjsip_session.c:1826 sip_session_refresh: Failed to create reinvite properly.
-- Channel PJSIP/receiver-00000024 left 'simple_bridge' basic-bridge <b2905cff-fa9d-4d84-9192-f5439d55ffda>
-- Channel PJSIP/sender-00000023 left 'simple_bridge' basic-bridge <b2905cff-fa9d-4d84-9192-f5439d55ffda>
== Spawn extension (sender-forward, 002, 3) exited non-zero on 'PJSIP/sender-00000023'
-- Executing [h@sender-forward:1] Verbose("PJSIP/sender-00000023", "0, "002 hung up (cause: 127)"") in new stack
"002 hung up (cause: 127)"
-- Executing [h@sender-forward:2] Hangup("PJSIP/sender-00000023", "") in new stack
== Spawn extension (sender-forward, h, 2) exited non-zero on 'PJSIP/sender-00000023'
It seems that server A successfully connects to B, and the calls are bridged, but then they are immediately disconnected (with hangup code 127).
What am I doing wrong?
I am assuming it has to be something wrong with the way I configured pjsip or my dialplan. I’ve changed nothing else.