I create it based on 1.8.2.3, and I can register to ET263 again with it.
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -23607,10 +23607,10 @@
/* RFC 3261 - 8.1.3.3 If more than one Via header field value is present in a reponse
* the UAC SHOULD discard the message. This is not perfect, as it will not catch multiple
* headers joined with a comma. Fixing that would pretty much involve writing a new parser */
- if (!ast_strlen_zero(__get_header(req, "via", &via_pos))) {
- ast_log(LOG_WARNING, "Misrouted SIP response '%s' with Call-ID '%s', too many vias\n", e, callid);
- return 0;
- }
+// if (!ast_strlen_zero(__get_header(req, "via", &via_pos))) {
+// ast_log(LOG_WARNING, "Misrouted SIP response '%s' with Call-ID '%s', too many vias\n", e, callid);
+// return 0;
+// }
if (p->ocseq && (p->ocseq < seqno)) {
ast_debug(1, "Ignoring out of order response %d (expecting %d)\n", seqno, p->ocseq);
return -1;
Debug info from CLI:
[Mar 24 10:00:30] NOTICE[376]: chan_sip.c:13457 handle_response_peerpoke: Peer '588xxxxxx' is now Reachable. (347ms / 2000ms)
-- Executing [008675512345678@DLPN_internal:1] Macro("SIP/2000-0000000d", "trunkdial-failover-0.3|SIP/588xxxxxx/075512345678||588xxxxxx||2000|008675512345678") in new stack
-- Executing [s@macro-trunkdial-failover-0.3:1] Set("SIP/2000-0000000d", "CALLERID(num)=2000") in new stack
-- Executing [s@macro-trunkdial-failover-0.3:2] Set("SIP/2000-0000000d", "TOUCH_MIXMONITOR=2000-008675512345678-20110324-100436") in new stack
-- Executing [s@macro-trunkdial-failover-0.3:3] Set("SIP/2000-0000000d", "TOUCH_MIXMONITOR_FORMAT=wav49") in new stack
-- Executing [s@macro-trunkdial-failover-0.3:4] GotoIf("SIP/2000-0000000d", "0?1-dial|1") in new stack
-- Executing [s@macro-trunkdial-failover-0.3:5] Set("SIP/2000-0000000d", "CALLERID(all)=") in new stack
-- Executing [s@macro-trunkdial-failover-0.3:6] Goto("SIP/2000-0000000d", "1-dial|1") in new stack
-- Goto (macro-trunkdial-failover-0.3,1-dial,1)
-- Executing [1-dial@macro-trunkdial-failover-0.3:1] Dial("SIP/2000-0000000d", "SIP/588xxxxxx/075512345678||") in new stack
-- Called 588xxxxxx/075512345678 [Mar 24 10:04:37] WARNING[376]: chan_sip.c:13120 handle_response_invite: Received response: "Forbidden" from '"asterisk" <sip:asterisk@xxx.xxx.xxx.xxx>;tag=as2425966a'
-- SIP/588xxxxxx-0000000e is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing [1-dial@macro-trunkdial-failover-0.3:2] GotoIf("SIP/2000-0000000d", "0 > 0 ?1-CONGESTION|1:1-out|1") in new stack
-- Goto (macro-trunkdial-failover-0.3,1-out,1)
-- Executing [1-out@macro-trunkdial-failover-0.3:1] Hangup("SIP/2000-0000000d", "") in new stack
== Spawn extension (macro-trunkdial-failover-0.3, 1-out, 1) exited non-zero on 'SIP/2000-0000000d' in macro 'trunkdial-failover-0.3'
== Spawn extension (DLPN_internal, 008675512345678, 1) exited non-zero on 'SIP/2000-0000000d'
Add ET263 as usual sip trunk in IP01, then modify two files:
1. In sip.conf add a line to auth.:
register=588xxxxxx:password@sip.etelephone.net:10002/588xxxxxx
2. In user.conf:
registersip=no ;changed from registersip=yes
Using CLI command sip show peers, which confirmed that ET263 can be reached. However, I cannot dial out thru ET263 as circuit busy was returned.