2012-05-22 1 views
3

У меня возникла странная проблема при использовании стандартной демонстрации Android SIP в сочетании с сервером asterisk 1.8.9.2: входящие/исходящие звонки работают правильно, но есть одна вещь, работа: когда я запускаю вызов из демонстрации SIP, и я снова закрываю вызов (нажав кнопку «Конец текущего вызова»), вызов завершается в демонстрации SIP, но вызываемое устройство все еще продолжает звонить.ОТМЕНА запроса от Android SIP demo игнорируется Asterisk 1.8

Я попытался проверить, что происходит при регистрации телеграмм через Wireshark и, кажется, что ОТМЕНА телеграммы от SIP демки на сервер звездочки не принимаются, посмотри:

300 08:30:39.483913 130.10.0.102 192.168.0.110 SIP/SDP 916 Request: INVITE sip:[email protected]:5060, with session description 
301 08:30:39.488686 192.168.0.110 130.10.0.102 SIP 525 Status: 100 Trying 
302 08:30:39.524884 192.168.0.110 130.10.0.102 SIP 541 Status: 180 Ringing 
309 08:30:41.041071 130.10.0.102 192.168.0.110 SIP 370 Request: CANCEL sip:[email protected]:5060 
310 08:30:41.051545 192.168.0.110 130.10.0.102 SIP 526 Status: 481 Call/Transaction Does Not Exist 

И теперь реальная странная вещь: если я повторяю одно и то же действие, и до завершения вызова через кнопку «Конец текущего вызова» я жду прибл. 7 секунд, ОТМЕНА принимаются и вызов терминатор:

646 08:31:05.571464 130.10.0.102 192.168.0.110 SIP/SDP 916 Request: INVITE sip:[email protected]:5060, with session description 
647 08:31:05.576150 192.168.0.110 130.10.0.102 SIP 525 Status: 100 Trying 
648 08:31:05.662345 192.168.0.110 130.10.0.102 SIP 541 Status: 180 Ringing 
664 08:31:08.302561 130.10.0.102 192.168.0.110 SIP 389 Request: OPTIONS sip:192.168.0.110 
665 08:31:08.312097 192.168.0.110 130.10.0.102 SIP 528 Status: 404 Not Found 
698 08:31:13.370346 130.10.0.102 192.168.0.110 SIP 370 Request: CANCEL sip:[email protected]:5060 
699 08:31:13.373570 192.168.0.110 130.10.0.102 SIP 513 Status: 487 Request Terminated 
700 08:31:13.373912 192.168.0.110 130.10.0.102 SIP 497 Status: 200 OK 

Я проверил содержимое оба ОТМЕНЫ запросов, и структура полностью совпадает! Кроме того, я также протестировал сервер со звездочкой 1.6, и там я НЕ столкнулся с этой проблемой, звонок прекращен правильно! Итак, это заставляет меня поверить, что он должен что-то сделать со звездочкой. 1,8.

Неужели кто-нибудь сталкивается с подобными проблемами и имеет некоторые полезные подсказки для меня? Если для анализа нужны дополнительные данные, просто дайте мне знать! Спасибо за вашу помощь, BR

Armin

ответ

4

У меня была такая же проблема с Asterisk 1.8.11.0 и Android 2.3/4.0.3. Существует простое решение этой проблемы в разделе «общий» файла sip.conf добавить следующий атрибут со значением, равным no.

[general] 
. 
. 
pedantic=no 

Я надеюсь, что он также будет работать для вас .....

+0

Привет, спасибо за отзыв, я попробую это на следующей неделе и дам вам знать! – DC84

+1

Loooong время нет обратной связи, извините много, но я был занят другими вещами! Я сейчас сделал тест, и он отлично работает и для меня! Большое спасибо за эту информацию! – DC84

0

SIP-демка просто демо :) Это не может справиться со всеми ситуациями правильно. Работает ли он с «настоящим» SIP-клиентом? Используйте свое любимое приложение софтфона, чтобы проверить его. Для Android вы можете попробовать SIPDroid. Если это так, в демонстрации SIP что-то не хватает, если нет, может быть проблема с вашей конфигурацией Asterisk.

+0

Привет, спасибо за Ваш ответ. Я тестировал SIPDroid и, действительно, не показывал проблемы. Я понимаю, что демонстрация SIP - это просто демо, но в ней используется стандартный стек Android SIP, который я в настоящее время также использую для своего личного приложения. И у меня проблема в обоих приложениях, поэтому я думаю, что это проблема Android SIP stack ... может ли это быть? – DC84

+0

Возможно. Сравните захват пакетов с SIPDroid и SIP Demo и может дать вам несколько подсказок о том, где проблема. Весьма вероятно, что у Asterisk уже есть параметр/switch, который будет иметь дело с этим, но сначала вы должны определить проблему. Проверьте все заголовки и т. Д. На наличие различий. –

+0

Я сделал то, что вы сказали, но я искренне не вижу разницы в способе обработки CANCEL ... SIPDroid отправляет те же пакеты ... порядок содержащихся сообщений немного отличается, но я не думаю, что это вызывает проблемы.Как уже говорилось в моем главном посте, также нет разницы в структуре/содержании рабочего и нерабочего CANCEL ... есть ли у вас какие-либо другие подсказки? – DC84

0

Unfortuntely SIPDroid использует другой SIP-стек, а Gingerbread установлен изначально. Вот почему вы не наблюдаете игнорирования метода CANCEL. Я играл с Sroid-стеком Android для выборочной интеграции с сервером ACS AVSystem TR-069 и имел такое же наблюдение. Не знаю, есть ли какие-либо исправления для этого. Трек прогресса здесь: http://avsystem.com

+0

Привет, Алекс, спасибо за ваш ответ, к сожалению, я все еще борюсь с этой проблемой. Я знаю, что SipDroid имеет свой собственный SIP-стек, но я не могу использовать его для своего проекта по причинам лицензии ... на данный момент я просто плохо обрабатываю его, блокируя кнопку зависания на ок. 7 секунд; после этого времени CANCEL всегда принимается. – DC84

 Смежные вопросы

  • Нет связанных вопросов^_^