AsteriskThailand
May 22, 2012, 01:02:20 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: เรื่องสายเรียกซ้อนครับ รบกวนท่านเซ๊ยนอีกแล้ว  (Read 1589 times)
jaturapornchai
Newbie
*
Posts: 6


View Profile Email
« on: October 08, 2007, 05:41:23 PM »

ผมมีปัญหาสายเรียกซ้อน ใช้ PAP2 ตอนนี้กำลังคุย มีคนโทรเข้าจะดัง ตึดๆ สายที่โทรมาก็จะบอกว่าเราไม่รับสาย
ที่อยากได้คือ ให้ใช้ทีละสาย ถ้าสายอื่นโทรเข้ามาก็ให้สายไม่ว่าง
รบกวนแนะนำด้วยครับ ผมใช้ trixbox
Logged
stp
Newbie
*
Posts: 32


View Profile
« Reply #1 on: October 08, 2007, 08:04:10 PM »

ถ้าใช้ trixbox ให้เข้าไปดูที่หน้า Feature Code default น่าจะเป็น *70 (For Activate), *71 (For Cancel)
Logged
Patrickz
Global Moderator
Sr. Member
*****
Posts: 274


View Profile WWW
« Reply #2 on: October 08, 2007, 08:20:56 PM »


เอามาจาก TrixBox Cheat Sheet

มีอีกนะ ลองดู
Asterisk Reference Card (PDF)
Asterisk Reference Card (PDF)
Logged

jaturapornchai
Newbie
*
Posts: 6


View Profile Email
« Reply #3 on: October 09, 2007, 11:54:49 AM »

ขอบคุณครับ แต่ผมเคยทดสอบแล้วไม่ work (ไม่ทราบสาเหตุ)
เลยอยากจะถามว่า เราจะ config ไว้ถาวรไว้เลยได้หรือเปล่าครับ
Logged
stp
Newbie
*
Posts: 32


View Profile
« Reply #4 on: October 09, 2007, 03:39:53 PM »

To check:

- from CLI ใช้คำสั่ง database show CW เพื่อดูว่า enable Call Waiting ไว้หรืิอเปล่า
- from CLI ใช้คำสั่ง show hints (ในขณะที่มีการใช้สาย status จะต้องเป็น inuse)
- Call Waiting จะใช้ได้ก็ต่อเมื่อ CallWaiting=Enable and Status=Inuse
- ถ้า status ไม่เป็น InUse ให้ลองแก้ sip.conf section [general]

limitonpeers=yes
notifyringing=yes
notifyonhold=yes
call-limits=10

- ถ้ายังใช้ไม่ได้ให้ upgrade asterisk เป็น 1.4.11
- หรือ set call-limits=1
 
Logged
dome
Star
Newbie
***
Posts: 15


View Profile Email
« Reply #5 on: October 16, 2007, 02:25:46 AM »

ลองตามที่ stp แนะนำน่าจะใช้ได้นะครับ

ขออธิบายแนวคิดเรื่องสายเรียกซ้อนดังนี้นะครับ
ขอแยก *70 (For Activate), *71 (For Cancel) ทิ้งไปก่อนนะครับ มันไม่ใช้ feature ของ Asterisk เป็น Feature ของ Freepbx ที่เขียน script ใน dial plan
ขึ้นมาแทนการเรัยกใช้ คำสั่ง Dial แบบตรงๆ เป็นเรื่องที่ทำให้ developer ของ Asterisk หงุดหงิดมานาน เพราะ user มันจะนึกว่าลง Asterisk แล่วทำไมกด *70 ไม่ได้

ถ้าเรา create sip user ขึ้นมาแบบไม่ได้กำหนด call-limits Asterisk จะไม่สนใจเลยว่า เราจะอยู่ใน status ไหน มีคน call ปุ๊ป มันก็ส่งไปเลย เช่น
exten => 222,1,Dial(SIP/dome)
มีใครกด 222 มันก็ ส่ง sip ไปหา dome ตลอด โดยผลักภาระการทำ busy , accept call ไปให้ sip device เลย ถ้า sip device เช่น X-Lite มี 2 Line คนที่โทรไปเป็นคนที่ 2 ก็จะได้ไปเข้า line ที่ 2 ของ X-Lite คนที่ 3 ถึงจะได้ busy tone

Freepbx ได้กำหนด แนวคิดการโทรโดยการใช้ประโยชน์จาก internal DB ของ Asterisk (File ชื่อ astdb ) ซึ่งเป็น DB4 มีความพยายามจะเป็นเป็น SQLite แต่ยังไม่เร่งด่วนอะไร จริงๆ Asterisk ใช้ internal DB นี้ในการเก็บ Registry ของ User เพื่อจะได้ call ถูก IP , Port เวลาคนโทรหา
สามารถดูได้จาก
*CLI> database show
/SIP/Registry/dome                                : 192.168.5.123:41816:3600:dome:sip:dome@192.168.5.123:41816;rinstance=c8d8cb26281e2c6a
/dundi/secret                                     : uTWkNq8mID8guggvYBvKUA==
/dundi/secretexpiry                               : 1192474109
/mychan/dome                                      : IAX2/dome-3
5 results found.

Internal DB นี่เราสามารถเขียนได้ ลบได้
Freepbx เลยเอามาเก็บค่า พวก * ทั้งหลายเอาไว้ เวลาจะโทรแทนที่จะ dial เลยก๋ทำเท่ห์ โดยการไปเป็น DB ก่อน
เช่นเรื่อง call waiting จุกประสงค์ทำขึ้นมาเพื่อจะ ไม่รับสายเรียกซ้อน เพราะ default ของ asterisk ส่ง call ไปทั้งหมดอยู่แล้ว
ตัวอย่างง่ายๆ
exten => *71,1,Answer
exten => *71,n,dbDel(CW/${CALLERID(number)})
exten => *71,n,Playback(call-waiting&de-activated)

exten => *70,n,Answer
exten => *70,n,Set(DB(CW/${CALLERID(number)})=ENABLED)
exten => *70,n,Playback(call-waiting&activated)

พอจะโทร จากเดิม exten => 222,1,Dial(SIP/dome)
ก็ส่งไปใ้ห้ AGI ก่อน โดยจะเช็ค DB และ ExtensionState ผ่านทาง AGI Manager
ได้ status กลับมา 0-idle; 1-busy; 4-unavail; 8-ringing
แล้วค่อย dial ไป พวก CFx ทั้งหลายก็เช่นกัน

การใช้ internal DB มาทำอะไรแบบนี้จะมีปัญหามากกับการใช้ Dynamic Realtime User เพราะจะต้องหาทางอ้อมมา เปิด ปิด DB ผ่าน manager port วุ่นวาย
เลยต้องแก้ด้วยการเขียน script dial ขึ้นมาใหม่ แล้วไปเรียกค่าพวก CW CFx จาก Realtime DB แทน ซึ่งสะดวกสำหรับการเขียน Web และทำ Hosted PBX สำหรับหลายองค์กร ได้สะดวกกว่า





Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.12 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
SEM | Asterisk | สถานที่ท่องเที่ยว | สัมมนา SEM