2012-01-09 28 views
5

Tôi đang thử nghiệm ứng dụng khách Voip được viết bởi nhà phát triển ứng dụng iPhone sử dụng PJSip. Cá nhân tôi đã đùa giỡn với một số phát triển SIP bản thân mình nhưng không có chuyên gia.Ứng dụng Iphone Voip - Bối cảnh và giữ cho hình ảnh sống động của chúng tôi

Với softswitch VOIP của chúng tôi (gói Acme/Broadsoft), nó sẽ xử lý tất cả các Nat Xử lý bằng cách tự động xác định thời gian đăng ký tốt nhất để giữ Nat pinhole còn sống trên thiết bị nat. Thông thường khi iPhone ở phía sau NAT lần này là từ 60-90 giây.

Ứng dụng Iphone đang sử dụng TCP và hoạt động vui vẻ với tính năng Tạo nền. Rõ ràng nền là lý tưởng để tiết kiệm pin. Cuộc gọi đánh thức điện thoại và bạn có thể nghe cuộc gọi.

Vấn đề là khi ứng dụng chuyển sang chế độ nền, nó không có cách nào để giữ Nat Pinhole mở. Điều này có nghĩa là tường lửa sẽ luôn từ chối các cuộc gọi đến mới khi truy cập vào Ứng dụng Iphone sau khi lỗ hổng được đóng lại. Điều này có ảnh hưởng của cuộc gọi đến làm việc với ứng dụng trong vài phút, sau đó không hoạt động trong một khoảng thời gian, sau đó khi ứng dụng xuất hiện trong nền và đăng ký lại, cuộc gọi đến sẽ hoạt động trở lại.

Theo tài liệu táo: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3

Họ có trường hợp ngoại lệ đặc biệt cho các ứng dụng sẵn có voip cho backgrounding chúng ta có thể: 1. socket Configure Apps như vậy mà họ vẫn có thể xử lý các tin nhắn gửi đến. Điều này không giúp ích cho việc nhắn tin sẽ không bao giờ liên lạc được với ứng dụng nếu lỗ cam được đóng lại. 2. Sử dụng Keep giữ nguyên, tuy nhiên thời gian tối thiểu là 600 giây. Điều này cũng có nghĩa là lỗ kim sẽ đóng lại.

Có cách thông minh nào đó mà ứng dụng có thể gửi tin nhắn đăng ký voip sip hay không, cứ 60 giây một lần trong khi vẫn ở chế độ nền. Hoặc ứng dụng có thể thức dậy sau mỗi 60 giây làm một số công việc và sau đó đóng lại.

Im thực sự bối rối về việc có hay không có các ứng dụng nhâm nhi khác trên thị trường đã gặp vấn đề này.

+0

Có các ứng dụng trên thị trường đã thực hiện công việc xung quanh cho vấn đề này. Ví dụ ứng dụng 3CX. –

+0

Bạn có nhận được giải pháp nào cho điều này không? –

Trả lời

-1

Giữ bí mật TCP nếu khoảng thời gian không quá ngắn, tôi nghĩ điều này sẽ duy trì phiên NAT mở. Bạn có thể cho chúng tôi biết liệu nó có giúp ích hay không?

0

Để giải pháp cho điều này là để Acme gửi TCP keepalives đến các thiết bị đã đăng ký với nó và đặt hết hạn ít nhất 600s. Bạn có thể muốn nó cao hơn bởi vì điện thoại sẽ mất một thời gian để đăng ký lại để một cái gì đó giống như 720 sẽ làm việc tốt hơn.

Điều này sẽ giữ lỗ kim mở NAT nếu bạn đặt khoảng thời gian lưu giữ đủ thấp, khoảng 30 giây hoặc lâu hơn. NAT nên cho phép một khoảng thời gian cao hơn nhưng có thể yêu cầu một số thử nghiệm.

Tôi biết rằng ACME SBC có thể xử lý việc này.

Các vấn đề liên quan