Reading DTMF Sent By Callee During A SIP Call

Home » Asterisk Users » Reading DTMF Sent By Callee During A SIP Call
Asterisk Users 2 Comments

Hi everyone,

I am looking for advice about the design of a SIP-based intercom. I
count on your help, as my current attempts are not fruitful (yet).

This will be a pretty long message, so here’s my fundamental question:

Is there a way to interpret DTMF tones sent by the calee
(not the caller) while a voice call is in progress?

Here’s the desired scenario:

– there is a box with speakers and a mic
Asterisk is running on a computer inside that box
– the box is embedded in a door
– There are two user accounts, UserA and userB
– UserA is a client that runs on the server*
– UserA calls UserB and they are having a voice conversation

Throughout the call, Asterisk must react to DTMF tones sent by userB;
such that an action is executed when a specific key is pressed.

The idea is to build an intercom that would enable me to open a door remotely, by relying entirely on SIP, so there would be no need to have some additional communication channel to send the “open door”
signal.

I have previously implemented IVRs using `Background` and jumped to specific extensions, when a button was pressed. But in that case, the extensions are dialed by the caller; whereas now the input must from the person who answered the call.

If I use `Dial` and `Read` – the latter is only executed after `Dial`
terminates – so this is not suitable.

`Background` behaves like I need – but it plays back a predefined file, so it is not suitable for an interactive conversation.

* Having a SIP client on the same machine as the Asterisk server itself is not possible, because both won’t be able to bind to port
5060. My guess is that the solution is to originate a call from the CLI; but I haven’t gotten to that part yet.

Thank you for your patience, I am looking forward to your feedback, Alex

2 thoughts on - Reading DTMF Sent By Callee During A SIP Call

  • You could create your own feature in features.conf that executes a Macro/Gosub defined in sip.conf…

    Ish

  • Isn’t it easier just to use a SIP door phone?

    –Don

    From: asterisk-users-bounces@lists.digium.com
    [mailto:asterisk-users-bounces@lists.digium.com] Hi everyone,

    I am looking for advice about the design of a SIP-based intercom. I
    count on your help, as my current attempts are not fruitful (yet).

    This will be a pretty long message, so here’s my fundamental question:

    Is there a way to interpret DTMF tones sent by the calee
    (not the caller) while a voice call is in progress?

    Here’s the desired scenario:

    – there is a box with speakers and a mic
    – Asterisk is running on a computer inside that box
    – the box is embedded in a door
    – There are two user accounts, UserA and userB
    – UserA is a client that runs on the server*
    – UserA calls UserB and they are having a voice conversation

    Throughout the call, Asterisk must react to DTMF tones sent by userB;
    such that an action is executed when a specific key is pressed.

    The idea is to build an intercom that would enable me to open a door remotely, by relying entirely on SIP, so there would be no need to have some additional communication channel to send the “open door”
    signal.

    I have previously implemented IVRs using `Background` and jumped to specific extensions, when a button was pressed. But in that case, the extensions are dialed by the caller; whereas now the input must from the person who answered the call.

    If I use `Dial` and `Read` – the latter is only executed after `Dial`
    terminates – so this is not suitable.

    `Background` behaves like I need – but it plays back a predefined file, so it is not suitable for an interactive conversation.

    * Having a SIP client on the same machine as the Asterisk server itself is not possible, because both won’t be able to bind to port
    5060. My guess is that the solution is to originate a call from the CLI; but I haven’t gotten to that part yet.

    Thank you for your patience, I am looking forward to your feedback, Alex

    You could create your own feature in features.conf that executes a Macro/Gosub defined in sip.conf…

    Ish