2012-01-09 11 views
5

Testuję klienta SIP VoIP napisanego przez programistę aplikacji iPhone, który korzysta z PJSip. Osobiście bawiłem się trochę rozwojem SIP, ale nie jestem ekspertem.Aplikacja Iphone Voip - Projektowanie i utrzymywanie przy życiu dziurawki

Dzięki naszemu softswitchowi VOIP (pakiet Acme/Broadsoft), obsługuje on wszystkie funkcje Nat Handling, dynamicznie określając najlepszy czas ponownej rejestracji, aby utrzymać przy życiu dziurawkę Nat na urządzeniu nat. Zazwyczaj, gdy iphone znajduje się za NATem, czas ten wynosi od 60 do 90 sekund.

Aplikacja Iphone używa protokołu TCP i chętnie współpracuje z funkcją tworzenia w tle. Oczywiście tło jest idealne, aby zaoszczędzić na żywotności baterii. Połączenie budzi telefon i możesz słuchać połączenia.

Problem polega na tym, że gdy aplikacja przechodzi w tryb tła, nie ma możliwości zachowania otwartego otworu Otworkowego. Oznacza to, że zapora będzie zawsze odrzucać nowe połączenia przychodzące od osiągnięcia aplikacji Iphone po zamknięciu otworków. Ma to wpływ na połączenia przychodzące działające w aplikacji przez kilka minut, a następnie nie działa przez pewien okres, a następnie, gdy aplikacja wychodzi z tła i rejestruje się ponownie, połączenia przychodzące działają ponownie.

Zgodnie z dokumentacją jabłoni: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3

Mają wbudowane specjalne wyjątki dla aplikacji VoIP w tło możemy: 1. Skonfiguruj Aplikacje gniazda tak, że może nadal obsługiwać wiadomości przychodzące. To nie pomaga, ponieważ wiadomości nigdy nie dotrą do aplikacji, jeśli otwieracz zostanie zamknięty. 2. Użyj opcji Zachowaj przy życiu, jednak minimalny czas to 600 sekund. Oznacza to również, że otworek zostanie zamknięty.

Czy jest jakiś sprytny sposób, w jaki aplikacja może wysłać wiadomość rejestracyjną Voip Sip, co około 60 sekund, pozostając w tle. A może aplikacja obudzi się co 60 sekund, a następnie wykona pracę, a następnie zamknie.

Jestem naprawdę zakłopotany, czy na rynku dostępne są inne aplikacje typu sip, które obejrzały ten problem.

+0

Istnieją aplikacje dostępne na rynku, które rozwiązały ten problem. Na przykład aplikacja 3CX. –

+0

Czy masz jakieś rozwiązanie? –

Odpowiedz

-1

Utrzymywanie aktywności TCP jest dozwolone, jeśli interwał nie jest zbyt krótki, uważam, że powinno to utrzymać otwartą sesję NAT. Czy możesz nam powiedzieć, czy to pomaga, czy nie?

0

Rozwiązaniem tego problemu jest wysłanie przez Acme TCP keepalives do zarejestrowanych urządzeń i ustawienie wygasania na co najmniej 600s. Możesz chcieć, aby był wyższy, ponieważ telefon wymaga trochę czasu, aby ponownie zarejestrować, więc coś jak 720 będzie działać lepiej.

Powinno to spowodować otwarcie otwo- ru NAT, jeśli interwał utrzymywania będzie odpowiednio niski, około 30 sekund. NAT powinien zezwalać na dłuższy okres, ale może to wymagać pewnych testów.

Wiem, że SBC firmy ACME mogą sobie z tym poradzić.

Powiązane problemy