[asterisk-bugs] [JIRA] (ASTERISK-25031) DTMF INFO before answer leads to 200 OK without Contact: header

Etienne Allovon (JIRA) noreply at issues.asterisk.org
Wed Apr 29 07:34:33 CDT 2015


Etienne Allovon created ASTERISK-25031:
------------------------------------------

             Summary: DTMF INFO before answer leads to 200 OK without Contact: header
                 Key: ASTERISK-25031
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25031
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Channels/chan_sip/General
    Affects Versions: 11.17.1
            Reporter: Etienne Allovon


*Summary*

When asterisk receives a INFO message (DTMF) before the call was asnwered it answers the INFO with a SIP 200 OK without the {{Contact:}} header.
It results, for the receiving peer, to terminate the call (SIP BYE) because he can't answer.
For example, if the receiving peer is an asterisk, you get the following WARNING in the CLI :
{code}
WARNING[32089] chan_sip.c: Invalid contact uri  (missing sip: or sips:), attempting to use anyway
{code}


*When does it happen in real life ?*

In real life I saw it with two asterisk interconnected with a SIP trunk and a T1/E1 connection :
{code}
Phone ---SIP--- (asterisk) --- SIP --- (asterisk-gw) --- E1/T1 ---
{code}

Let's say you call a premium-rate number. Before answering the call the service will play a message saying something like : _This is a premimum-rate number, you'll be charged ... next time press # to skip this message_
If you press #, call is hangup.
Here's what happen _asterisk-gw_ point of view :
{code}
< INVITE            (CSeq 1)
> 401 Unauthorized  (CSeq 1)
< ACK               (CSeq 1)
< INVITE            (CSeq 2)
> (isdn) SETUP
< (isdn) CALL PROCEEDING
> 100 Trying        (CSeq 2)  
< (isdn) CALL PROGRESS
> 183 Progress      (CSeq 2)
< INFO (#)          (CSeq 3)
> 200 OK            (CSeq 3) .... /!\ which does not contain the Contact: header
> BYE 500 Server error
{code}

The 200 OK to the INFO message does not contain the {{Contact:}} header.

*How to reproduce*
Below is a SIP exchange forged with SIPp which reproduce the problem :

{code}
< INVITE            (CSeq 1)
> 401 Unauthorized  (CSeq 1)
< ACK               (CSeq 1)
< INVITE            (CSeq 2)
> 100 Trying        (CSeq 2)  
> 183 Progress      (CSeq 2)
< INFO (#)          (CSeq 3)
> 200 OK            (CSeq 3) .... /!\ which does not contain the Contact: header
{code}

The bug appears at step #7.

Here's the SIPp command to launch the scenario :
{code}
/usr/src/sipp-3.3/sipp 192.168.18.55 -sf REGISTER_INVITE_client.xml -inf REGISTER_INVITE_client.csv -i 192.168.18.11 -m 1 -l 1 -r 1
{code}

You need to :

* replace 192.168.18.65 asterisk IP,
* replace 192.168.18.11 with SIPp client IP
* get the REGISTER_INVITE_client-dtmf.xml file,
* get the REGISTER_INVITE_client-dtmf.csv file and change the authentication information


*References*
SIPp scenarios based on examples found here : http://tomeko.net/other/sipp/sipp_cheatsheet.php?lang



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list