[OpenSER-Users] OpenSER with TLS - method BYE = protocol/port mismatch ??

David Loh davidloh at vyke.com
Tue Aug 21 13:28:16 CEST 2007


Hi Daniel,

Thanks for the reply, here's my INVITE and BYE packet, I tcpdump-ed and 
and use wireshark to export as txt, so the format might be abit off.

1) Invite from OpenSER to Asterisk via port 5060, asterisk return a 200. 
And the call successfully established
------------------------------------------------------------------------
Record-Route: <sip:%OpenSER_IP%;r2=on;lr;ftag=1247871f;nat=yes>
Record-Route: 
<sip:%OpenSER_IP%:5061;transport=tls;r2=on;lr;ftag=1247871f;nat=yes>
Via: SIP/2.0/UDP %OpenSER_IP%;branch=z9hG4bKe42e.ff11ae32.0;i=52
Via: SIP/2.0/TLS 
%UAC_LAN_IP%:23323;received=%UAC_WAN_IP%;branch=z9hG4bK-d87543-2820ee009262b500-1--d87543-;rport=3135
Max-Forwards: 69
Contact: <sip:davidloh@%UAC_WAN_IP%:3135;transport=TLS>
To: "001"<sip:001@%SIP_Domain%>
From: "ser"<sip:davidloh@%SIP_Domain%>;tag=1247871f
Call-ID: Zjc4OWJhZGNiMDUxNjQ5Y2I2ZDU3NTc4NGY2Y2RmOGQ.
CSeq: 1 INVITE
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, 
SUBSCRIBE, INFO
Content-Type: application/sdp
User-Agent: eyeBeam release 1004p stamp 31962
Content-Length: 239
------------------------------------------------------------------------

2) Here's the BYE, from Asterisk to OpenSER.
------------------------------------------------------------------------
Via: SIP/2.0/UDP %Asterisk_IP%:5060;branch=z9hG4bK0ca1ab09;rport
Route: 
<sip:%OpenSER_IP%;r2=on;lr;ftag=1247871f;nat=yes>,<sip:%OpenSER_IP%:5061;transport=tls;r2=on;lr;ftag=1247871f;nat=yes>
From: "001"<sip:001@%SIP_Domain%>;tag=as0492a9d0
To: "ser"<sip:davidloh@%SIP_Domain%>;tag=1247871f
Call-ID: Zjc4OWJhZGNiMDUxNjQ5Y2I2ZDU3NTc4NGY2Y2RmOGQ.
CSeq: 102 BYE
User-Agent: Asterisk PBX
Max-Forwards: 70
Content-Length: 0
------------------------------------------------------------------------

3) And then, OpenSER passing the BYE to UAC...
------------------------------------------------------------------------
Record-Route: <sip:%OpenSER_IP%;lr;ftag=as0492a9d0>
Via: SIP/2.0/UDP %OpenSER_IP%;branch=z9hG4bK5e.1195fd8.0
Via: SIP/2.0/UDP %Asterisk_IP%:5060;branch=z9hG4bK0ca1ab09;rport=5060
From: "001"<sip:001@%SIP_Domain%>;tag=as0492a9d0
To: "ser"<sip:davidloh@%SIP_Domain%>;tag=1247871f
Call-ID: Zjc4OWJhZGNiMDUxNjQ5Y2I2ZDU3NTc4NGY2Y2RmOGQ.
CSeq: 102 BYE
User-Agent: Asterisk PBX
Max-Forwards: 69
Content-Length: 0
------------------------------------------------------------------------

I think the "protocol/port mismatch" happened right after (3) because 
from my ethereal trace,
after short while (perhaps timeout), Asterisk will re-initiate a "BYE" 
and pass to OpenSER (packet #2), and OpenSER will forward it to UAC 
(packet #3),
but somehow UAC doesn't response an "ACK" to OpenSER that why from my 
ethereal trace, packet #2 and #3 kept looping.

Any thoughts ?


Thanks in advance.

Regards,
David Loh



Daniel-Constantin Mierla wrote:
> Hello,
>
> can you paste the BYE here (you can catch it with ngrep if it is not 
> coming via tls, e.g., from asterisk)? Also, the invite going to 
> asterisk will be good.
>
> Cheers,
> Daniel
>
>
> On 08/20/07 07:50, David Loh wrote:
>> Hi All,
>>
>> Good day, I'm new to this mailing list :-)
>>
>> I've setup an OpenSER server with TLS implementation, so far I tested 
>> everything works fine,
>> but there's strange problem for "BYE" request, from the openser's log 
>> it always complaint:
>> "Aug 19 22:58:40 ser /sbin/openser[16171]: WARNING:get_send_socket: 
>> protocol/port mismatch"
>>
>> Here's my implementation:
>> UA -> OpenSER -> Asterisk (as RTP) -> OpenSER -> UA
>> On OpenSER I've two port opened which is Udp 5060 and TCP 5061 (TLS).
>> My UA is Eyebeam v1.5 and the CA certificate (self-signed) already 
>> installed into IE "Trusted RootCA Certificates".
>> So far I've tested p2p and pstn calls (and call to playback 
>> balance/asterisk), but the problem is unless UA disconnect the call 
>> (initiate BYE),
>> otherwise if remote party (p2p/pstn/asterisk) initiate BYE request, 
>> my UA will forever stay connected until I disconnect the call manually.
>>
>> So far I've identified the BYE request from remote party will go into 
>> Loose Route, and I've place a xlog to display the R-Uri..
>> here's the log from openser: (notes: if UA dial '001' will playback 
>> his/her balance from asterisk)
>> ------------------------------------------------------------------------------------------------------------- 
>>
>> Aug 19 22:58:31 ser /sbin/openser[16189]: DBG: INVITE from client 
>> sip:%user%@%domain% (%UA_IP%) - p2p call
>> Aug 19 22:58:31 ser /sbin/openser[16189]: DBG: INVITE 
>> F-[sip:%user%@%domain%] T-[sip:001@%domain%] IP-[%UA_IP%] SUCCESSFUL
>> Aug 19 22:58:32 ser /sbin/openser[16189]: DBG: INVITE from client 
>> sip:%user%@%domain% (%UA_IP%)
>> Aug 19 22:58:32 ser /sbin/openser[16189]: DBG: INVITE from client 
>> sip:%user%@%domain% (%UA_IP%) - p2p call
>> Aug 19 22:58:32 ser /sbin/openser[16189]: DBG: INVITE 
>> F-[sip:%user%@%domain%] T-[sip:001@%domain%] IP-[%UA_IP%] SUCCESSFUL
>> Aug 19 22:58:32 ser /sbin/openser[16189]: DBG: 
>> [sip:%user%@%domain%](%UA_IP%) ACK [sip:001@%domain%] relayed LOOSE 
>> ROUTE
>> Aug 19 22:58:32 ser /sbin/openser[16189]: DBG: ruri 
>> [sip:001@%Asterisk_IP%] relayed LOOSE ROUTE
>> Aug 19 22:58:40 ser /sbin/openser[16171]: DBG: 
>> [sip:001@%domain%](%Asterisk_IP%) BYE [sip:%user%@%domain%] relayed 
>> LOOSE ROUTE
>> Aug 19 22:58:40 ser /sbin/openser[16171]: DBG: ruri 
>> [sip:%user%@%domain%:%UA_Port%] relayed LOOSE ROUTE
>> Aug 19 22:58:40 ser /sbin/openser[16171]: WARNING:get_send_socket: 
>> protocol/port mismatch <<<=============
>> Aug 19 22:58:41 ser /sbin/openser[16177]: DBG: 
>> [sip:001@%domain%](%Asterisk_IP%) BYE [sip:%user%@%domain%] relayed 
>> LOOSE ROUTE
>> Aug 19 22:58:41 ser /sbin/openser[16177]: DBG: ruri 
>> [sip:%user%@%UA_IP%:%UA_Port%] relayed LOOSE ROUTE
>> Aug 19 22:58:42 ser /sbin/openser[16181]: DBG: 
>> [sip:001@%domain%](%Asterisk_IP%) BYE [sip:%user%@%domain%] relayed 
>> LOOSE ROUTE
>> Aug 19 22:58:42 ser /sbin/openser[16181]: DBG: ruri 
>> [sip:%user%@%UA_IP%:%UA_Port%] relayed LOOSE ROUTE
>> ....... (repeat the last 4 lines N times )
>> ------------------------------------------------------------------------------------------------------------- 
>>
>> Below is my openser.cfg, loose route section
>> ------------------------------------------------------------------------------------------------------------- 
>>
>>       ###############
>>        # Loose route #
>>        ###############
>>    if(loose_route()) {
>>        if(has_totag() && (is_method("INVITE") || is_method("ACK"))) {
>>            if(nat_uac_test("19") || search("^Route:.*;nat=yes")) {
>>                fix_nated_contact();
>>            }
>>        }
>>
>>        xlog("L_INFO", "DBG: [$fu]($si) $rm [$tu] relayed LOOSE ROUTE");
>>        xlog("L_INFO", "DBG: ruri [$ru] relayed LOOSE ROUTE");
>>        t_relay();
>>
>>        exit;
>>    }
>> ------------------------------------------------------------------------------------------------------------- 
>>
>>
>> Had anyone encountered the same problems before ? Do you mind to 
>> share your experience with me ?
>> Your help are greatly appreciated, thanks in advance.
>>
>> Regards,
>> David Loh
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/users
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20070821/4d212870/attachment.htm>


More information about the sr-users mailing list