diff --git a/lib/call-session.js b/lib/call-session.js index 2bf8f2f..bd1ff17 100644 --- a/lib/call-session.js +++ b/lib/call-session.js @@ -348,9 +348,10 @@ class CallSession extends Emitter { this.logger.info({err}, 'Error retrieving iip key'); } } + // INVITE request line and To header should be the same. + hdrs = {...hdrs, 'To': uri}; if (gw) { this.logger.info({gw}, `sending INVITE to ${uri} via carrier ${gw.name}`); - hdrs = {...hdrs, 'To': uri}; if (gw.diversion) { let div = gw.diversion; if (div.startsWith('+')) { diff --git a/test/scenarios/uac-pcap-sip-routing-success.xml b/test/scenarios/uac-pcap-sip-routing-success.xml new file mode 100644 index 0000000..2bcaf17 --- /dev/null +++ b/test/scenarios/uac-pcap-sip-routing-success.xml @@ -0,0 +1,91 @@ + + + + + + + ;tag=[pid]SIPpTag09[call_number] + To: + Call-ID: [call_id] + CSeq: 1 INVITE + Contact: sip:sipp@[local_ip]:[local_port] + Max-Forwards: 70 + X-Account-Sid: ed649e33-e771-403a-8c99-1780eabbc803 + X-Call-Sid: fff49e33-e771-403a-8c99-1780eabbc803 + X-Jambonz-Routing: sip + Subject: uac-pcap-carrier-success + Content-Type: application/sdp + Content-Length: [len] + + v=0 + o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip] + s=- + c=IN IP[local_ip_type] [local_ip] + t=0 0 + m=audio [auto_media_port] RTP/AVP 8 101 + a=rtpmap:8 PCMA/8000 + a=rtpmap:101 telephone-event/8000 + a=fmtp:101 0-11,16 + + ]]> + + + + + + + + + + + + + ;tag=[pid]SIPpTag09[call_number] + To: [peer_tag_param] + Call-ID: [call_id] + CSeq: 1 ACK + Subject: uac-pcap-carrier-success + Content-Length: 0 + + ]]> + + + + + + + + + + + + + + + ;tag=[pid]SIPpTag09[call_number] + To: [peer_tag_param] + Call-ID: [call_id] + CSeq: 2 BYE + Max-Forwards: 70 + Subject: uac-pcap-carrier-success + Content-Length: 0 + + ]]> + + + + + + diff --git a/test/sip-tests.js b/test/sip-tests.js index 62382e9..d7818d8 100644 --- a/test/sip-tests.js +++ b/test/sip-tests.js @@ -44,6 +44,10 @@ test('sbc-outbound tests', async(t) => { await sippUac('uac-pcap-carrier-success.xml'); t.pass('successfully completed outbound call to sip trunk'); + /* call to Sip URI with no lcr configured */ + await sippUac('uac-pcap-sip-routing-success.xml'); + t.pass('successfully completed outbound call to sip routing trunk'); + /* call to PSTN with no lcr configured */ await sippUac('uac-pcap-inbound-carrier-success.xml'); t.pass('successfully completed outbound call to sip trunk');