Recently, we’ve migrated chan_sip to PJSIP(of Asterisk 18.2.2).
In chan_sip, we can differentiate device offline status(480/408) and no sippeers(404) by response error codes.
But in PJSIP, both are 404 error codes.
we checked the log of these types.
- Dial() to endpoint which is in DB(realtime ODBC) but offline status.
-- Executing [1100000003@sc:1] Dial("PJSIP/421894210-00000013", "PJSIP/1100000003,Tt") in new stack
[2021-03-22 11:50:44] ERROR[4731]: res_pjsip.c:3938 ast_sip_create_dialog_uac: Endpoint '1100000003': Could not create dialog to invalid URI '1100000003'. Is endpoint registered and reachable?
[2021-03-22 11:50:44] ERROR[4731]: chan_pjsip.c:2645 request: Failed to create outgoing session to endpoint '1100000003'
[2021-03-22 11:50:44] WARNING[4969][C-00000014]: app_dial.c:2596 dial_exec_full: Unable to create channel of type 'PJSIP' (cause 3 - No route to destination)
-- No devices or endpoints to dial (technology/resource)
-- Executing [1100000003@sc:2] Hangup("PJSIP/421894210-00000013", "") in new stack
== Spawn extension (sc, 1100000003, 2) exited non-zero on 'PJSIP/421894210-00000013'
<--- Transmitting SIP response (447 bytes) to UDP:xxx.xxx.xxx.xxx:45605 --->
SIP/2.0 404 Not Found
Via: SIP/2.0/UDP 192.168.10.239:62971;rport=45605;received=xxx.xxx.xxx.xxx;branch=z9hG4bK-524287-1---b0cbae40797083e9
- Dial() to endpoint which is not in DB(realtime ODBC).
-- Executing [1199999999@sc:1] Dial("PJSIP/421894210-00000015", "PJSIP/1199999999,Tt") in new stack
[2021-03-22 11:51:32] ERROR[4975]: chan_pjsip.c:2616 request: Unable to create PJSIP channel - endpoint '1199999999' was not found
[2021-03-22 11:51:32] WARNING[4979][C-00000016]: app_dial.c:2596 dial_exec_full: Unable to create channel of type 'PJSIP' (cause 3 - No route to destination)
-- No devices or endpoints to dial (technology/resource)
-- Executing [1199999999@sc:2] Hangup("PJSIP/421894210-00000015", "") in new stack
== Spawn extension (sc, 1199999999, 2) exited non-zero on 'PJSIP/421894210-00000015'
<--- Transmitting SIP response (447 bytes) to UDP:xxx.xxx.xxx.xxx:45605 --->
SIP/2.0 404 Not Found
Via: SIP/2.0/UDP 192.168.10.239:62971;rport=45605;received=xxx.xxx.xxx.xxx;branch=z9hG4bK-524287-1---76e64da63e347fa3
extensions.conf is below
[sc]
exten => _11XXXXXXXX,1,Dial(PJSIP/${EXTEN},30,Tt)
exten => _11XXXXXXXX,2,hangup()
and endpoints are like this(realtime ODBC)
ps_aors: (id: number, max_contacts: 10)
ps_auths: (id: number, auth_type: "userpass", password: sip_password, username: number)
ps_endpoints: (id: number, transport: "transport-udp", aors: number,
auth: number, context: "sc", direct_media: "yes",
disallow: "all", allow: "ulaw",
rtp_symmetric: "yes", force_rport: "yes", rewrite_contact: "yes")
As you might see, log is a little bit different but the response is both 404. expected 480 or 408
I checked this page but I guess chan_sip and PJSIP responses the same error code.
https://wiki.asterisk.org/wiki/display/AST/Hangup+Cause+Mappings
Any solution to this problem?
thanks.