Hello Everyone,
I've been grappling with this issue for some months, time to raise the white flag.
Essentially I need to work out a way to configure Kamailio/RTPengine to normalise
telephone-events to 101 earlier in the piece.
1. Call comes in from Carrier with INVITE w/SDP, telephone-event payload of 96.
2. INVITE sent to Asterisk with the same SDP, payload = 96
3. INVITE sent from Asterisk to Client with payload = 101
* 200 OK w/SDP from Client has payload = 101
* 200 OK w/SDP to Kamailio has payload = 96
* 200 OK w/SDP to Carrier has payload = 96
4. Asterisk (with Direct Media enabled) sends INVITE to Kamailio with payload = 96, and
new media IP of Client
5. Kamailio passes this onto Carrier with media IP of RTPengine
6. 200 OK w/SDP from Carrier has payload = 96 sent to Kamailio
7. Kamailio passes this 200 OK to Asterisk, which responds with ACK and doesn't do
anything further
+---------+ +----------+ +---------+ +---------+
| Carrier | <----1-----> | Kamailio | <-----2----> | Asterisk|
<----3------>| Client |
| | | | | | | |
+---------+ +----------+ +---------+ +---------+
^ | | |
| | |3| |
| | | |
+------5---------> +-----------+ <-----------------+------------4-----------+
| RTPengine |
+-----------+
Big issue is, the Client is expecting telephone-events with a payload of 101, whereas
RTPengine is passing it 96 from the Carrier.
* Inbound DTMF only works at client-side if Asterisk stays in path (far from ideal).
* The issue is exacerbated when calls are sent back out to the same or another carrier
(forward scenario).
* There's nothing I can seem to do in Asterisk to change how it handles DTMF in a
direct media/re-invite setting.
Any ideas?
Cheers,
Tim Bowyer