วิธีทำให้ Asterisk ติดต่อกับภายนอกทาง SIP Trunk

Asterisk Opensource IP Pbx

วิธีทำให้ Asterisk ติดต่อกับภายนอกทาง SIP Trunk

โพสต์โดย voip4share » 16 ธ.ค. 2009 00:08

วิธีทำให้ Asterisk ติดต่อกับภายนอกทาง SIP Trunk
voip4share
Administrator
 
โพสต์: 656
ลงทะเบียนเมื่อ: 18 พ.ย. 2009 11:26
ที่อยู่: รามคำแหง กรุงเทพฯ

Re: วิธีทำให้ Asterisk ติดต่อกับภายนอกทาง SIP Trunk

โพสต์โดย haeha » 27 ก.พ. 2010 05:24

จากบทความนี้
เชื่อมต่อ Elastix กับบริการ TOTnetcall
เห็นทำง่ายดี เพียงแค่
[list=]1. คอนฟิก Outbound Trunk และ Registration
2. คอนฟิก Outbound Route
3. ตรวจสอบการรีจิสเตอร์
4. โทรทดสอบ[/list]
เลยอยากทำบ้างใน asterisk จึงลงทุนซื้อ totnetcall มา 2 id
แต่พอเอาเข้าจริง ไม่รู้ว่าต้องไปเซต Outbound Trunk กับ Outbound Route ตรงไหน - -"
แล้วต้องไปยุ่งเกี่ยวกะ DAHDI ด้วยหรือป่าว?

ผมจะทดลองทำดูนะครับ
ใช้ ip ภายนอก แบบ dynamic domain

ไม่มีเบอร์โทรศัพท์พื้นฐาน
แต่มีเบอร์ netcall 2 id ก็เลยเอามาทดลองเป็นสายภายนอก
ตามความเข้าใจนะครับคือผมต้องสร้าง

outbound trunk ก่อนเพื่อลงทะเบียนกับ netcall ก็คงเป็นที่ไฟล์ sip.conf
inbound trunk เพื่อรับสายโทรเข้าจาก netcall ก็คงเป็นที่ไฟล์ sip.conf

ส่วน outbound route กับ inbound route คงจะเป็นที่ไฟล์ extension.conf

ลองมาหาตัวอย่างในหมวด Asterisk ดูก็ยังไม่เห็นมีเขียนตรงๆ ที่น่าใกล้เคียงก็คงเป็นหัวข้อนี้ แต่ยังไม่ได้ๆเขียน
^ ^ เอาใจช่วยให้ว่างมาเขียนไวๆนครับ ระหว่างรอก็จะหาวิธีเซตค่าไปพลางๆก่อน จะถูกหลักหรือปล่าวก็ไม่แน่ใจ
แต่มั่นใจว่าโค้ดคงจะขี้เหร่น่าดู ใครพอทราบวิธีช่วยมาแนะนำผมด้วยนะครับ
http://www.irbeautina.biz
เว็ปขายสินค้าแบรนด์ไทยตั้งโดยโรงงานรับจ้างผลิต ที่สั่งสมประสบการณ์การผลิตเพื่อการส่งออกมากว่า 27 ปี
มีผลิตภัณฑ์หลากหลายอาทิ สินค้าด้านความงาม อาหารเสริม สปา บำรุงผิวพรรณ รักษาสิว ฝ้า น้ำหอม เครื่องประดับ
เปิดรับสมัครตัวแทนจำหน่ายอิสระ แฟรนไชส์
ภาพประจำตัวสมาชิก
haeha
Silver Member
 
โพสต์: 26
ลงทะเบียนเมื่อ: 12 ก.พ. 2010 07:41
ที่อยู่: บางแสน

Re: วิธีทำให้ Asterisk ติดต่อกับภายนอกทาง SIP Trunk

โพสต์โดย haeha » 27 ก.พ. 2010 07:13

ไปเจอในเว็ป totnetcall เลยเอามาทดสอบ
ตัวอย่างการตั้งค่า Totnetcall บน Asterisk IP PBX

หมายเหตุ : USERID แทน SIP Account ของ totnetcall และ PW แทน รหัสผ่านของ totnetcall

1. ทำการแก้ไขไฟล์ sip.conf เพื่อทำการขึ้นทะเบียนและประกาศ SIP Account กับทาง totnetcall

โค้ด: เลือกทั้งหมด
[general]
register => USERID:PW@203.113.125.82/USERID

[totnetcall]
username=USERID
type=friend
fromuser=USERID
realm=10.10.2.50
secret=PW
host=203.113.125.82
outboundproxy=203.113.125.82
fromdomain=203.113.125.82
insecure=invite,port
canreinvite=no
dtmfmode=rfc2833
call-limit=1
allow=g729
allow=alaw
allow=ulaw
nat=yes



2. ทำการแก้ไขไฟล์ extensions.conf เพื่อกำหนดให้กดหมายเลขที่จะโทรออก SIP Trunk นี้ต้องกดหมายเลข 9 ก่อน

โค้ด: เลือกทั้งหมด
[default]
exten => _9.,1,Dial(SIP/${EXTEN:1}@totnetcall,45,r)


ส่วนนี่เป็น message ที่แสดงใน asterisk console ครับ สงสัยว่ามันสายตัดเพราะ error "Comfort noise support in complete in Asterisk" ใช่หรือป่าวครับ

โค้ด: เลือกทั้งหมด
[Feb 27 06:54:07] NOTICE[7016]: rtp.c:1130 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 203.113.125.82
    -- SIP/totnetcall-00000015 answered SIP/100-00000014
    -- Packet2Packet bridging SIP/100-00000014 and SIP/totnetcall-00000015
  == Spawn extension (from-internal, 9081443xxxx, 1) exited non-zero on 'SIP/100-00000014'


จาก wireshark
โค้ด: เลือกทั้งหมด
0.000000  192.168.1.5 -> 203.113.125.82 SIP/SDP Request: INVITE sip:081443xxxx@203.113.125.82, with session description
0.052307 203.113.125.82 -> 192.168.1.5  SIP Status: 100 Trying
3.493114 203.113.125.82 -> 192.168.1.5  SIP/SDP Status: 183 Session Progress, with session description
20.192113 203.113.125.82 -> 192.168.1.5  SIP/SDP Status: 200 OK, with session description
20.192848  192.168.1.5 -> 203.113.125.82 SIP Request: ACK sip:081443xxxx@203.113.125.82:5060;transport=udp
33.607236  192.168.1.5 -> 203.113.125.82 SIP Request: REGISTER sip:203.113.125.82
33.653543 203.113.125.82 -> 192.168.1.5  SIP Status: 401 Unauthorized    (0 bindings)
33.654054  192.168.1.5 -> 203.113.125.82 SIP Request: REGISTER sip:203.113.125.82
33.729102 203.113.125.82 -> 192.168.1.5  SIP Status: 200 OK    (1 bindings)
50.886072  192.168.1.5 -> 203.113.125.82 SIP Request: BYE sip:081443xxxx@203.113.125.82:5060;transport=udp
50.939948 203.113.125.82 -> 192.168.1.5  SIP Status: 200 OK

หรือจะหลุดเพราะบรรทัดนี้
โค้ด: เลือกทั้งหมด
33.653543 203.113.125.82 -> 192.168.1.5  SIP Status: 401 Unauthorized    (0 bindings)


ผลปรากฎว่า โทรเข้ามือถือติด มือถือพูดมา pc ได้ยิน แต่ pc พูดไป มือถือไม่ได้ยิน
แถมอยู่ได้ไม่เกิน 40 วินาที สายตัดทุกรอบเลย ไม่ทราบว่าทำผิดตรงไหนเอ่ย
http://www.irbeautina.biz
เว็ปขายสินค้าแบรนด์ไทยตั้งโดยโรงงานรับจ้างผลิต ที่สั่งสมประสบการณ์การผลิตเพื่อการส่งออกมากว่า 27 ปี
มีผลิตภัณฑ์หลากหลายอาทิ สินค้าด้านความงาม อาหารเสริม สปา บำรุงผิวพรรณ รักษาสิว ฝ้า น้ำหอม เครื่องประดับ
เปิดรับสมัครตัวแทนจำหน่ายอิสระ แฟรนไชส์
ภาพประจำตัวสมาชิก
haeha
Silver Member
 
โพสต์: 26
ลงทะเบียนเมื่อ: 12 ก.พ. 2010 07:41
ที่อยู่: บางแสน

Re: วิธีทำให้ Asterisk ติดต่อกับภายนอกทาง SIP Trunk

โพสต์โดย voip4share » 27 ก.พ. 2010 10:59

โค๊ด 401 Unauthorized ไม่เป็นปัญหาครับ มันมีเป็นปกติของการขั้นตอนการรีจิสเตอร์อยู่แล้วหน่ะครับ Register -> 401 Unauthorized แล้วก็ Register -> 200 OK

ปัญหาที่ว่าได้ยินเสียงฝั่งเดียวหรือไม่ได้ยินเสียงเลย เป็นเพราะว่า RTP มันไม่ถึงกันครับระหว่าง TOT หรือไม่ก็มีปัญหาเรื่อง Codec ตัว Asterisk ของคุณ haeha รองรับ G.729 ด้วยป่ะครับ
อาการจาก Mobile มา PC ได้ยินเสียง แสดงว่า RTP จาก TOT Netcall ทะลุมาถึง PC ได้ แต่จาก PC ไป Mobile ไม่ได้ยินเสียงแสดงว่า RTP ไปไม่ถึง TOT Netcall

เอางี้ครับ ขอให้ใช้โปรแกรม Ngrep จะได้ข้อมูลที่ละเอียดมากกว่า เราจะเห็นว่ามันใช้ RTP Port หมายเลขอะไรคุยกัน ใช้ IP Address อะไรคุยกัน ใช้ Codec อะไรคุยกัน เพราะผมสงสัย IP Address ที่อยู่ตามฟิล์ส่วนต่างๆของ SIP Message ด้วยว่ามันใช้ IP ไหนคุยกัน

อาการตัดทุกประมาณ 50 วินาทีนั้น ผมดูจาก SIP Message แล้วทาง PC เป็นคนสั่งวางสาย (มันส่ง BYE ไปหา TOT Netcall) อันนี้ไม่ทราบว่าคุณ heaha กดวางสายเองหรือว่าโปรแกรมมันทำเองครับ ผมเดาว่าคุณ heaha น่าจะกดวางสายเอง (เพราะมันส่ง BYE ออกไป) ถ้าโปรแกรมมันทำเองก็แสดงว่ามันยังไม่ได้รับอะไรสักอย่างหนึ่งมาจากทางฝั่ง TOT Netcall มันรอจน Timeout มันก็เลยวางเอง

ใช้ Ngrep แค๊ปเจอร์ครับ

ส่วนข้อความ Comfort noise support in complete in Asterisk นั้น ผมไม่มั่นใจนะครับว่ามันจะเกี่ยวข้องหรือเปล่า แต่ผมเคยเจอตอนที่ใช้ Gateway ถ้าผมไปอินาเบิล VAD หรือ Silence Suppression เวลาส่งเข้า TT&T ซึ่งเขาก็ใช้ SoftSwitch รุ่นและยี่ห้อเดียวกับ TOT, True คือ Huawei SoftX3000 แต่อาจคนละเวอร์ชั่น ใช้งานไปสักพักเกือบๆนาทีเสียงก็จะไม่มีแล้ว จนต้องวางสายเอง

ผมมีบทความนึงที่จะแนะนำครับอาจช่วยได้ Asterisk + Huawei SoftX3000
voip4share
Administrator
 
โพสต์: 656
ลงทะเบียนเมื่อ: 18 พ.ย. 2009 11:26
ที่อยู่: รามคำแหง กรุงเทพฯ


ย้อนกลับไปยัง Asterisk SIP Server

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 10 ท่าน

cron