Asterisk PJSIP using SIP INFO

Hello everyone,

Anyone knows if Asterisk 18 supports SIP INFO for outgoing calls?
I try to make some call generated from Asterisk using #PJSIP and don’t achieve that appears INFO string in “Allow” line.

I would like to know if exists some parameter or configuration to inform to others endpoints that Asterisk support SIP INFO.

I know that it is advised using rfc4733, but I’m doing some tests and I don’t achieve that Asterisk receive DTMF using SIP INFO method.

The test is very simple: Asterisk generate the call to other system and when it answers, automatically the receiver of the call sends DTMF numbers using SIP INFO packages.

I tested configuring ‘dtmf_mode’ to ‘info’ in the endpoint:

test1*CLI> pjsip show endpoint 101
Endpoint:  <Endpoint/CID.....................................>  <State.....>  <Channels.>
    I/OAuth:  <AuthId/UserName...........................................................>
        Aor:  <Aor............................................>  <MaxContact>
      Contact:  <Aor/ContactUri..........................> <Hash....> <Status> <RTT(ms)..>
  Transport:  <TransportId........>  <Type>  <cos>  <tos>  <BindAddress..................>
   Identify:  <Identify/Endpoint.........................................................>
        Match:  <criteria.........................>
    Channel:  <ChannelId......................................>  <State.....>  <Time.....>
        Exten: <DialedExten...........>  CLCID: <ConnectedLineCID.......>
==========================================================================================

 Endpoint:  101                                                  Not in use    0 of inf
     InAuth:  101/101
        Aor:  101                                                5
      Contact:  101/sip:101@80.211.181.235:56886;line=imf5 fd60bf7931 NonQual         nan
  Transport:  transport-udp             udp      0      0  0.0.0.0:5060

ParameterName                      : ParameterValue
===================================================================================================
<snip>
dtls_setup                         : active
 dtls_verify                        : No
 dtmf_mode                          : info
 fax_detect                         : false
 fax_detect_timeout                 : 0
<snip>

I execute the command:

test1*CLI> console dial 999@test
    -- Executing [999@test:1] Dial("Console/dsp", "PJSIP/101") in new stack
    -- Called PJSIP/101

and the SIP package I don’t see INFO support in Allow:

2021/04/29 09:25:52.635568 235.125.41.19:5060 -> 80.211.181.235:56886
INVITE sip:101@80.211.181.235:56886;line=imf5owxc SIP/2.0
Via: SIP/2.0/UDP 235.125.41.19:5060;rport;branch=z9hG4bKPjb5a679d1-c1bd-4c98-afd5-86d420b8cfcd
From: <sip:235.125.41.19>;tag=009d0dd2-db31-4538-8a97-f8746a287a46
To: <sip:101@80.211.181.235;line=imf5owxc>
Contact: <sip:asterisk@235.125.41.19:5060>
Call-ID: 4215d500-85b5-4b30-8811-fe53010f502d
CSeq: 16565 INVITE
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, REFER
Supported: 100rel, timer, replaces, norefersub, histinfo
Session-Expires: 1800
Min-SE: 90
Max-Forwards: 70
User-Agent: Asterisk PBX 18.2.2
Content-Type: application/sdp
Content-Length:   179

v=0
o=- 39982350 39982350 IN IP4 235.125.41.19
s=Asterisk
c=IN IP4 235.125.41.19
t=0 0
m=audio 12074 RTP/AVP 8
a=rtpmap:8 PCMA/8000
a=ptime:20
a=maxptime:150
a=sendrecv

In fact, instead of this, if the remote system generates the call, appears the INFO method in the “allow” line.

The module doesn’t place the INFO method in the Allow line it seems. In practice, though, I’ve never seen an endpoint switch to using INFO as the DTMF if present in the Allow line - because INFO isn’t strictly for DTMF. DTMF is only one of the content types that can be carried over INFO, so generally you have to explicitly configure it on both sides.

Thank you for your response,

I know that INFO isn’t strictly for DTMF, but this is the only parameter that I know where I can configure this option.

In fact, the remote endpoint is using SIP INFO as keepalive (instead of using OPTIONS), but how Asterisk don’t send INFO as method supported, the endpoint hangups the call.

This is the reason of I try to indicate to the endpoint that I can receive INFO packages.

There is nothing configuration wise to put INFO in the Allow line. Code would have to be written to do so. The OPTIONS code does this[1] so it could be used as a base for how to do it.

[1] asterisk/pjsip_options.c at master · asterisk/asterisk · GitHub

Thank you again for confirm me my supposes and for the idea to use the OPTION source code to make my own INFO support. :smiley: