ไม่สามารถลงทะเบียนผู้ใช้ sip บน red5server โดยใช้ red5phone


13

ฉันเริ่ม red5

จากนั้นฉันก็เริ่ม red5phone

ฉันพยายามที่จะลงทะเบียนผู้ใช้จิบรายละเอียดฉันให้คือ

    ชื่อผู้ใช้ = 999999
    รหัสผ่าน = ****
    ip = asteriskserverip

และฉันได้

- การลงทะเบียนผู้ติดต่อ - sip: 999999@127.0.0.1: 5072

การติดต่อที่เหมาะสมอาจเป็น

- การลงทะเบียนผู้ติดต่อ - sip: 99999 @ asteriskserverip

นี่คือบันทึก:

SipUserAgent - listen -> Init...
Red5SIP register
[SIPUser] register
RegisterAgent: Registering contact <sip:99999@127.0.0.1:5072> (it expires in 3600 secs)
RegisterAgent: Registration failure: No response from server.
[SIPUser] SIP Registration failure Timeout
RegisterAgent: Failed Registration stop try.
Red5SIP Client leaving app 1
Red5SIP Client closing client 35C1B495-E084-1651-0C40-559437CAC7E1
Release ports: sip port 5072 audio port 3002
Release port number:5072
Release port number:3002
[SIPUser] close1
[SIPUser] hangup
[SIPUser] closeStreams
RTMPUser stopStream
[SIPUser] unregister
RegisterAgent: Unregistering contact <sip:99999@127.0.0.1:5072>
SipUserAgent - hangup -> Init...
SipUserAgent - closeMediaApplication -> Init...
[SIPUser] provider.halt
RegisterAgent: Registration failure: No response from server.
[SIPUser] SIP Registration failure Timeout

โปรดแจ้งให้เราทราบหากฉันทำอะไรผิด


อย่างใดคำถามนี้มี 11 upvotes คำถามการเขียนโปรแกรมที่นี่คืออะไร?
Duck

นั่นคือคำถามดูแลระบบ :)
Vitaly Nikolaev

คำตอบ:


2

สิ่งที่ฉันจะแนะนำให้ทำคือทำการจับแพ็คเก็ตบนโทรศัพท์และฝั่งเซิร์ฟเวอร์จากนั้นวิเคราะห์การจับโดยใช้ WireShark

Wireshark มีการตีความการรับส่งข้อมูล VoIP ได้ดีเป็นพิเศษและจะแยกแพ็คเก็ต SIP ให้คุณอ่านง่าย

จากตรงนั้นคุณสามารถบอกได้ว่าเซิร์ฟเวอร์ STUN ของคุณไม่ถูกต้อง (ถ้าคุณกำลังใช้ STUN) หรือหากมีบางสิ่งที่แปลกประหลาดเกิดขึ้นกับแพ็กเก็ตการเชื่อมต่อแล้วใช้สิ่งนั้นเพื่อ จำกัด สถานการณ์ให้แคบลง

เหตุผลในการเรียกใช้การดักจับที่ปลายทั้งสองก็คือฉันได้เห็นไฟร์วอลล์ "SIP-Aware" ที่มีความหมายดีจัดการกับแพ็กเก็ต SIP อย่างไม่ถูกต้องซึ่งทำให้ไม่ปวดหัว แต่ฉันบอกได้เลยว่าแพ็กเก็ตที่เข้าไฟร์วอลล์นั้น แตกต่างจากสิ่งที่ออกจากไฟร์วอลล์ซึ่งเป็นของแถม


2

การจับแพ็คเก็ต (thsark / ngrep) เก็บคำตอบที่คุณต้องการ

ฉันจะบอกว่าเซิร์ฟเวอร์ไม่ได้รับแพ็กเก็ต SIP สำหรับการลงทะเบียนหรือลูกค้าไม่สามารถได้รับการตอบสนองตัดสินโดย

'RegisterAgent: การลงทะเบียนล้มเหลว: ไม่มีการตอบกลับจากเซิร์ฟเวอร์'

ตรวจสอบสิ่งนี้โดยใช้ tshark / ngrep / tcpdump บนเซิร์ฟเวอร์ที่คุณพยายามลงทะเบียน หากคุณเห็นว่ามันเชื่อมโยงไปถึงบนเซิร์ฟเวอร์ แต่เซิร์ฟเวอร์ไม่ตอบสนองให้ตรวจสอบว่าเป็นไฟล์บันทึก ตรวจสอบว่าไม่มีกฎไฟร์วอลล์บนเซิร์ฟเวอร์บล็อก มันจะแสดงการดมกลิ่น แต่แอปพลิเคชันจะไม่ตอบสนองต่อมัน

SIP มาตรฐานจะอยู่ที่พอร์ต 5060 ซึ่งน่าจะเป็น UDP ส่วนใหญ่ แต่บางครั้ง TCP (ฉันกำลังดูคุณ Microsoft ... )

ตัวอย่าง:

tshark -i eth0 "พอร์ต 5060"
ngrep -q -W byline "" "พอร์ต 5060"
tcpdump "พอร์ต 5060"

ngrep มีประโยชน์ถ้าคุณมีการรับส่งข้อมูล SIP ที่ถูกต้องจำนวนมาก แต่จำเป็นต้องอ่านบางส่วนอย่างรวดเร็ว

ngrep -q -W byline "5025851212" "พอร์ต 5060"

ตัวอย่างนี้จะค้นหาหมายเลขโทรศัพท์เฉพาะหรือ

ngrep -I CAPTURED.PCAP -q -W ทางสายย่อย "CallID@Here.com" "พอร์ต 5060"

call-id เฉพาะภายในไฟล์ precaptured: CAPTURED.PCAP

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.