Twilio не отвечает на приглашение SIP

У меня есть реализация freeSwitch с использованием Twilio Elastic SIP trunking. По большей части это работает безупречно. Я могу принимать входящие вызовы из ТфОП на мою магистраль SIP и далее на мою АТС со свободным переключением. Я также могу без проблем инициировать вызовы по соединительной магистрали.

У меня возникают проблемы, когда моя функция FollowMe пытается дозвониться через соединительную линию SIP завершения, чтобы позвонить на мой мобильный телефон.

Я использовал FS_CLI, чтобы контролировать обмен данными с Twilio, и могу видеть сообщение приглашения SIP, но Twilio не отвечает.

Я даже сравнил (по большей части) запрос между тем, когда я звоню с моего добавочного номера на PSTN, и когда freeSwitch пытается позвонить через FollowMe. Они похожи. Я отправил запрос ниже, и если кто-то увидит что-то странное, дайте мне знать. Этот запрос просто повторяется и, в конце концов, сдается - от Twilio нет ответа и нет его журнала ни в журналах отладчика, ни в журналах магистрали. (Я ХХХХ набрал свои номера)

 send 1506 bytes to udp/[54.172.60.1]:5060 at 16:47:51.442983:
   ------------------------------------------------------------------------
   INVITE sip:[email protected] SIP/2.0
   Via: SIP/2.0/UDP XX.XX.XX.XX;rport;branch=z9hG4bKe92m35UyNXe2a
   Max-Forwards: 59
   From: "+1XXXXXXXXX0" <sip:[email protected]>;tag=3UHvjrXHmUyXp
   To: <sip:[email protected]>
   Call-ID: a369c6b9-82af-1235-e490-0050561ee798
   CSeq: 104375771 INVITE
   Contact: <sip:[email protected]:5060;transport=udp;gw=a741d1e8-2e0a-4527-b18d-518edbe57d73>
   User-Agent: FreeSWITCH
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
   Supported: timer, path, replaces
   Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
   Content-Type: application/sdp
   Content-Disposition: session
   Content-Length: 246
   Diversion: <sip:[email protected]>;reason=unconditional
   X-Twilio-AccountSid: XXXXXXXXXXX
   X-Twilio-CallSid: CA05acdaaae18a720113ab2e78cbd1db63
   X-accountcode: admin1.oxigenx.com
   X-FS-Support: update_display,send_info
   Remote-Party-ID: "+1XXXXXXXXX0" <sip:[email protected]>;party=calling;screen=yes;privacy=off

   v=0
   o=FreeSWITCH 1489394171 1489394172 IN IP4 XX.XX.XX.XX
   s=FreeSWITCH
   c=IN IP4 XX.XX.XX.XX
   t=0 0
   m=audio 29500 RTP/AVP 0 101 13
   a=rtpmap:0 PCMU/8000
   a=rtpmap:101 telephone-event/8000
   a=fmtp:101 0-16
   a=rtpmap:13 CN/8000
   a=ptime:20
   ------------------------------------------------------------------------


person Gorkem Yuksel    schedule 13.03.2017    source источник


Ответы (2)


Проповедник разработчиков Twilio здесь.

Я просто передаю информацию, полученную мной внутри компании на основании этого вопроса, я не являюсь экспертом по SIP. Однако это может помочь.

MTU (максимальная единица перехода) для SIP через UDP составляет 1500 байт. Спецификация предполагает, что сообщения SIP должны быть меньше 1300 байтов, чтобы разрешить использование заголовков и т. Д., Или что сообщение должно быть отправлено по TCP.

Похоже, что вы отправляли 1506 байт в соответствии с верхней частью вашего журнала, и удаление Remote-Party-ID привело бы к уменьшению размера сообщения до 1500. По сути, удаление любого несущественного параметра сделало бы то же самое, так что это не то, что Twilio не любит параметр Remote-Party-ID, но ваши сообщения отбрасывались по пути из-за того, что они были слишком большими. Мы не смогли найти журналы INVITE, поэтому вы тоже не смогли их увидеть.

В этом случае Remote-Party-ID на самом деле не используется Twilio, особенно в случае, когда идентификатор вызывающего абонента совпадает с From и представляет собой довольно длинный заголовок. Так что ваше решение, вероятно, лучшее.

Вы также можете удалить заголовок Allow-Events, связанный с методом SUBSCRIBE, который Twilio не поддерживает.

person philnash    schedule 13.03.2017
comment
Спасибо, Филнаш! В этом есть большой смысл. Я посмотрю, какие еще заголовки я могу удалить, чтобы убедиться, что это не вызовет других проблем в будущем. - person Gorkem Yuksel; 14.03.2017

Я разобрался в проблеме. Twilio не понравился параметр Remote-Party-ID, который отправлялся как часть INVITE. Я отключил RPID в конфигурации SIP, установив для «caller-id-type» значение «none».

Для этого зайдите в «Профили SIP» в меню «Дополнительно». Оттуда выберите профиль SIP, в котором необходимо отключить RPID. Прокрутите список вниз и найдите «тип идентификатора вызывающего абонента» со значением «нет». Щелкните по нему и установите для Enabled значение TRUE. Сохраните и перезапустите Софию из интерфейса командной строки.

person Gorkem Yuksel    schedule 13.03.2017