เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

Elastix IP Pbx

Moderator: jubjang

เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย nuiz » 14 มี.ค. 2012 12:07

** ขอขอบคุณ "คุณแม๊ก" ที่ให้ไอเดียในการเขียนบทความนี้ครับ **

สมมติว่ามีการเชื่อมต่อ Elastix กับตู้ PBX ด้วยการ์ด FXO (TDM410P) อย่างในรูปด้านล่างนี้นะครับ

elastix-to-pbx.png
Elastix to PBX connection
elastix-to-pbx.png (36.64 KiB) เปิดดู 12226 ครั้ง


ต้องการให้ยูสเซอร์บน Elastix และ PBX โทรหากันได้ โดยให้ยูสเซอร์ใช้งานได้ง่ายที่สุด

ที่เครื่อง Elastix ทำดังนี้
1. ติดตั้งการ์ด Analog FXO TDM410P เชื่อมต่อกับเบอร์ Extensions (เบอร์สายใน) ของตู้สาขา เบอร์ 200 - 203
** หรืออาจจะใช้ VoIP Gateway แบบ FXO แทนก็ได้ แต่จะไม่อยู่ในบทความนี้ครับ **

2. มี ATA (SIP) แบบ FXS รีจิสเตอร์ด้วยเบอร์ Extensins สองเบอร์คือ 100 และ 101
3. เบอร์ Extensions บน Elastix มี 3 หลักตั้งแต่ 100 - 199
4. โทรระหว่างเบอร์ Extensions 1xx กดตรงๆได้เลย
5. โทรไปยังเบอร์ในตู้ PBX กด 77 ตามด้วยเบอร์ที่ตู้ เช่น 77400 หรือ 77401 แต่ต้องการให้เวลายูสเซอร์ใช้งาน เขาสามารถกดเบอร์ 400 หรือ 401 ได้เลย

ที่ฝั่ง PBX ทำดังนี้
1. เซ็ต Hunting เบอร์ 200 - 203 มีเบอร์ 200 เป็นเบอร์นำหมู่
2. แจ้งยูสเซอร์ว่าถ้าต้องการโทรหายูสเซอร์ฝั่ง Elastix ให้กด 200 รอฟังเสียง Dialtone แล้วค่อยกดเบอร์ 1xx แต่ถ้ากด 200 แล้วสายไม่ว่างแสดงว่าสายเต็ม ให้รอสักพักแล้่วกดใหม่

บน Elastix มีเมนูที่เกี่ยวข้องดังนี้
- Extensions
- Trunks
- Outbound Routes
- Inbound Routes
- Followme
- Announcement
- DISA

มาลงมือคอนฟิกกันเลยครับ

1. คอนฟิกการ์ด Analog FXO เชื่อมต่อกับตู้สาขา
คอนฟิกการ์ดที่ Elastix ใช้เชื่อมต่อกับตู้สาขา ตามแต่ละยี่ห้อและประเภทของการ์ดครับ หาอ่านได้จากบทความติดตั้งการ์ดบน Elastix ในเว็บนี้แหล่ะครับ
การ์ด 4 FXO (TDM400P)
การ์ด 16 FXO (BL1600)
การ์ด 1 FXO (X100P)

ต่อสายโทรศัพท์จากตู้ PBX เข้าพอร์ต FXO ครบทั้ง 4 พอร์ต เข้าเว็บ Elastix -> System -> Hardware Detector จะเห็นสีเขียวๆแบบนี้

รูปภาพ

2. สร้างเบอร์ Extensions บน Elastix
สร้างเบอร์ Extension ทั้งที่เป็นของ ATA (SIP) และที่มีบนตู้สาขา (เบอร์ควรจะให้เหมือนกับเบอร์บนตู้สาขานะครับ กันงงทีหลัง) สรุปว่ามีเบอร์ Extensions 4 เบอร์ต่อไปนี้
100, 101 แบบ SIP สองเบอร์นี้สำหรับให้ ATA รีจิสเตอร์
400, 401 สองเบอร์นี้สร้างไว้เฉยๆ ไม่ต้องให้อะไรรีจิสเตอร์เข้ามา จะสร้างแบบ SIP หรือ IAX2 ก็ได้ สังเกตุว่าเบอร์เดียวกับบนตู้สาขาเลยครับ กันงง

3. คอนฟิก Trunks
เป็น DAHDI Trunks ครับเพื่อให้ ATA (เบอร์ 100, 101) โทรผ่าน Asterisk ไปยังตู้ PBX ได้ และในทางกลับกันให้เบอร์ 400, 401 โทรมายังเบอร์บน Elastix ได้ ในการคอนฟิกผมไม่ได้แยกว่าพอร์ตไหนใช้โทรออก พอร์ตไหนใช้โทรเข้า คือสามารถโทรเข้าโทรออกได้พร้อมๆกัน 4 สาย พอร์ต FXO บนการ์ดทุกพอร์ตผมให้อยู่ใน Group 0 ซึ่งเป็นดีฟอลท์

PBX -> Trunks -> Add ZAP Trunk (DAHDI compatibility mode)

รูปภาพ

สร้างอันเดียวพอครับ ใช้ได้ทั้งโทรเข้าและโทรออก


4. คอนฟิก Outbound Routes
ตั้งโค๊ดให้ Elastix รู้ว่าเราต้องการโทรออกผ่านการ์ด FXO เช่น 77

PBX -> Outbound Routes

รูปภาพ

5. คอนฟิก Inbound Routes
ให้ Elastix รับสายที่เรียกมาจากตู้ PBX

ไม่ต้องคอนฟิก ZAP Channel DIDs นะครับเพราะเคสนี้เราไม่มีเบอร์พิเศษ ไม่มีพอร์ตพิเศษที่จองเอาไว้ทำอย่างใดอย่างหนึ่ง ทุกพอร์ตใช้เพื่อจุดประสงค์เดียวกันหมดคือ รับสายจากตู้ PBX แล้วส่งต่อไปเบอร์ SIP Extensions 100, 101

สร้าง DISA เอาไว้ให้จ่าย Dial tone ให้ตู้ PBX เพื่อให้ยูสเซอร์ฝั่ง PBX กดเบอร์ Extension 100, 101

*** พอดีว่าตอนแรกผมคอนฟิก DISA อย่างเดียวแล้วเรียกใช้งานจาก Inbound Routes ปรากฏว่าเวลาโทรเข้าจาก PBX มาที่ Elastix มันก็เรียก DISA ให้นะครับ แต่มันไม่ยอมรับสาย ไม่ได้ยิน Dialtone ก็เลยกดเบอร์ต่อไม่ได้ ผมก็เลยต้องคอนฟิกอะไรสักอย่างหนึ่งก่อนแล้วค่อยเรียก DISA ผมเลือกคอนฟิก Announcement ***

PBX -> DISA

รูปภาพ

Announcement

รูปภาพ

PBX -> Inbound Routes
ช่อง DID Number เว้นว่างไว้ ส่วน Set Destination เลือก Announcement -> OLD-PBX

รูปภาพ

6. ทดสอบโทรจากเบอร์บน Elastix ไปยังเบอร์บนตู้ PBX

ผมจะเทสโทรจากเบอร์ Extensions 100 บน Elastix ไปยังเบอร์ Extension 401 บนตู้ PBX โดยกดเต็มรูปแบบคือ 77 ตัดสายนอก ตามด้วย 401 มาดูข้อความบน Asterisk Console กัน

โค้ด: เลือกทั้งหมด
[Mar 22 15:41:12]     -- Executing [77401@from-internal:1] Macro("SIP/100-00000000", "user-callerid,SKIPTTL,") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:1] ExecIf("SIP/100-00000000", "0]?Set(CALLERID(number)=100)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:2] ExecIf("SIP/100-00000000", "0]?Set(CALLERID(number)=100)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:3] ExecIf("SIP/100-00000000", "0?Set(CALLERID(number)=)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:4] Set("SIP/100-00000000", "AMPUSER=100") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:5] GotoIf("SIP/100-00000000", "0?report") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:6] ExecIf("SIP/100-00000000", "1?Set(REALCALLERIDNUM=100)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:7] Set("SIP/100-00000000", "AMPUSER=100") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:8] Set("SIP/100-00000000", "AMPUSERCIDNAME=bkk") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:9] GotoIf("SIP/100-00000000", "0?report") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:10] Set("SIP/100-00000000", "AMPUSERCID=100") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:11] Set("SIP/100-00000000", "CALLERID(all)="bkk" <100>") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:12] ExecIf("SIP/100-00000000", "0?Set(CHANNEL(language)=)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:13] GotoIf("SIP/100-00000000", "1?continue") in new stack
[Mar 22 15:41:12]     -- Goto (macro-user-callerid,s,22)
[Mar 22 15:41:12]     -- Executing [s@macro-user-callerid:22] NoOp("SIP/100-00000000", "Using CallerID "bkk" <100>") in new stack
[Mar 22 15:41:12]     -- Executing [77401@from-internal:2] Set("SIP/100-00000000", "_NODEST=") in new stack
[Mar 22 15:41:12]     -- Executing [77401@from-internal:3] Macro("SIP/100-00000000", "record-enable,100,OUT,") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-record-enable:1] GotoIf("SIP/100-00000000", "1?check") in new stack
[Mar 22 15:41:12]     -- Goto (macro-record-enable,s,4)
[Mar 22 15:41:12]     -- Executing [s@macro-record-enable:4] ExecIf("SIP/100-00000000", "0?MacroExit()") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-record-enable:5] GotoIf("SIP/100-00000000", "0?Group:OUT") in new stack
[Mar 22 15:41:12]     -- Goto (macro-record-enable,s,15)
[Mar 22 15:41:12]     -- Executing [s@macro-record-enable:15] GotoIf("SIP/100-00000000", "0?IN") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-record-enable:16] ExecIf("SIP/100-00000000", "1?MacroExit()") in new stack
[Mar 22 15:41:12]     -- Executing [77401@from-internal:4] Macro("SIP/100-00000000", "dialout-trunk,1,401,,") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:1] Set("SIP/100-00000000", "DIAL_TRUNK=1") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/100-00000000", "0?sub-pincheck,s,1") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/100-00000000", "0?disabletrunk,1") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:4] Set("SIP/100-00000000", "DIAL_NUMBER=401") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:5] Set("SIP/100-00000000", "DIAL_TRUNK_OPTIONS=tr") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:6] Set("SIP/100-00000000", "OUTBOUND_GROUP=OUT_1") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/100-00000000", "0?nomax") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/100-00000000", "0?chanfull") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/100-00000000", "0?skipoutcid") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:10] Set("SIP/100-00000000", "DIAL_TRUNK_OPTIONS=") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:11] Macro("SIP/100-00000000", "outbound-callerid,1") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/100-00000000", "0?Set(CALLERPRES()=)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/100-00000000", "0?Set(REALCALLERIDNUM=100)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/100-00000000", "1?normcid") in new stack
[Mar 22 15:41:12]     -- Goto (macro-outbound-callerid,s,6)
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:6] Set("SIP/100-00000000", "USEROUTCID="bkk" <100>") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:7] Set("SIP/100-00000000", "EMERGENCYCID=") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:8] Set("SIP/100-00000000", "TRUNKOUTCID=") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/100-00000000", "1?trunkcid") in new stack
[Mar 22 15:41:12]     -- Goto (macro-outbound-callerid,s,12)
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/100-00000000", "0?Set(CALLERID(all)=)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/100-00000000", "1?Set(CALLERID(all)=bkk <100>)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/100-00000000", "0?Set(CALLERID(all)=)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/100-00000000", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:12] ExecIf("SIP/100-00000000", "1?AGI(fixlocalprefix)") in new stack
[Mar 22 15:41:12]     -- Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
[Mar 22 15:41:12]   == fixlocalprefix: Dialpattern X. matched. 401 -> 401
[Mar 22 15:41:12]     -- <SIP/100-00000000>AGI Script fixlocalprefix completed, returning 0
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:13] Set("SIP/100-00000000", "OUTNUM=401") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:14] Set("SIP/100-00000000", "custom=DAHDI/r0") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/100-00000000", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^))") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:16] Macro("SIP/100-00000000", "dialout-trunk-predial-hook,") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/100-00000000", "") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:17] GotoIf("SIP/100-00000000", "0?bypass,1") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/100-00000000", "0?customtrunk") in new stack
[Mar 22 15:41:12]     -- Executing [s@macro-dialout-trunk:19] Dial("SIP/100-00000000", "DAHDI/r0/401,300,") in new stack
[Mar 22 15:41:12]     -- Called r0/401
[Mar 22 15:41:16]     -- DAHDI/1-1 answered SIP/100-00000000
[Mar 22 15:44:25]     -- Executing [h@macro-dialout-trunk:1] Macro("SIP/100-00000000", "hangupcall,") in new stack
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:1] GotoIf("SIP/100-00000000", "1?noautomon") in new stack
[Mar 22 15:44:25]     -- Goto (macro-hangupcall,s,3)
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:3] NoOp("SIP/100-00000000", "TOUCH_MONITOR_OUTPUT=") in new stack
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:4] GotoIf("SIP/100-00000000", "1?noautomon2") in new stack
[Mar 22 15:44:25]     -- Goto (macro-hangupcall,s,6)
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:6] NoOp("SIP/100-00000000", "MONITOR_FILENAME=") in new stack
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:7] GotoIf("SIP/100-00000000", "1?skiprg") in new stack
[Mar 22 15:44:25]     -- Goto (macro-hangupcall,s,10)
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:10] GotoIf("SIP/100-00000000", "1?skipblkvm") in new stack
[Mar 22 15:44:25]     -- Goto (macro-hangupcall,s,13)
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:13] GotoIf("SIP/100-00000000", "1?theend") in new stack
[Mar 22 15:44:25]     -- Goto (macro-hangupcall,s,15)
[Mar 22 15:44:25]     -- Executing [s@macro-hangupcall:15] Hangup("SIP/100-00000000", "") in new stack
[Mar 22 15:44:25]   == Spawn extension (macro-hangupcall, s, 15) exited non-zero on 'SIP/100-00000000' in macro 'hangupcall'
[Mar 22 15:44:25]     -- Hungup 'DAHDI/1-1'
[Mar 22 15:44:25]   == Spawn extension (macro-dialout-trunk, s, 19) exited non-zero on 'SIP/100-00000000' in macro 'dialout-trunk'
[Mar 22 15:44:25]   == Spawn extension (from-internal, 77401, 4) exited non-zero on 'SIP/100-00000000'

โทรจากเบอร์ 100 ไป 401 บนตู้ PBX ได้ครับถึงจะกดหลายหลักอยู่สักหน่อย หัวข้อต่อไปผมมีวิธีทำให้สั้นลงครับ โดยกดแค่เบอร์ 401 เท่านั้น

7. คอนฟิก Follow Me
สร้างเบอร์ Extensions 400 และ 401 บน Elastix จะเลือกเป็นแบบ SIP หรือ IAX2 ก็ได้ ไม่ต้องคอนฟิกอะไรมากเพราะจุดประสงค์คือต้องการใช้ฟีเจอร์ Followme ของสองเบอร์นี้

เบอร์ Extensions 400 ให้คอนฟิก Followme ใส่ 77400# แทน 400
เบอร์ Extensions 401 ให้คอนฟิก Followme ใส่ 77401# แทน 401
เมื่อ ATA กดโทร 400 หรือ 401 มันจะออกทางการ์ด FXO ไปยังตู้สาขา
ตัวอย่างต่อไปนี้ผมจะทำกับเบอร์ Extensions 401 นะครับ ส่วนเบอร์ 400 นั้นก็ทำเหมือนกัน

PBX -> Extensions -> 401

คลิ๊ก Add Follow Me Settings

รูปภาพ

รูปภาพ

Ring Time (max 60 sec) ระยะเวลารอสาย ถ้าใช้ค่า 20 ตามดีฟอลท์มันจะสั้นไปครับ บางทียูสเซอร์ไม่ทันจะรับสายมันก็ตัดไปแล้ว
Follow-Me List ใส่ 77401# โดยที่ 77 คือโค๊ดตัดออกพอร์ต FXO ส่วนเครื่องหมาย # เป็นการบอกให้ Elastix รู้ว่าให้ส่งออกทาง Trunks
Play Music On Hold? เลือก Music On Hold ระหว่างรอสาย
Destination if no answer ถ้ายูสเซอร์ไม่รับสายภายในระยะเวลา Ring Time ให้ทำอะไรต่อ ผมเลือกตัดสาย Terminate Call -> Hangup

กด Submit -> Apply Configuration Changes Here

ลองเทสใหม่ครับ โทรจากเบอร์ 100 ไปเบอร์ 401 บนตู้สาขา คราวนี้กด 401 เฉยๆ ก็เวอร์คครับ

** เมื่อเราใช้เทคนิค Follow Me นี้ เบอร์ 4xx สามารถอยู่บนตู้ PBX ก็ได้ หรืออยู่บน Elastix ก็ได้ หรือมีอยู่ทั้ง 2 ระบบก็ได้ เบอร์ซ้ำกันก็ได้ด้วยนะครับ **

- ถ้าเบอร์อยู่บน Elastix ในช่อง Follow-Me List ใส่ 401
- ถ้าเบอร์อยู่บน PBX ใส่แบบนี้ 77401#
- ถ้าเบอร์อยู่บน Elastix ด้วยและ PBX ด้วย ใส่แบบนี้
401
77401#
เวลาโทรไปใครรับสายก่อนคนนั้นก็ได้คุย

คงพอเข้าใจนะครับ

8. โทรจากเบอร์ Extensions บนตู้สาขามาที่ Elastix
คราวนี้ก็เป็นทีของยูสเซอร์บนตู้ PBX บ้างหล่ะครับที่จะต้องโทรหาเบอร์บน Elastix ผมทดสอบโทรจากเบอร์ Extensions 401 บน PBX ไปที่เบอร์ 100 บน PBX เช่นเดียวกัน รอจนได้ยิน Dialtone แล้วผมก็กดเบอร์ 100 บน Elastix ได้ข้อความใน Asterisk Console ตามด้านล่างครับ สังเกตุว่ามีเบอร์ 401 อยู่ใน Messages ด้วยเป็นเพราะว่าตู้ PBX ที่ผมใช้มันรองรับ CallerID ซึ่งถ้าหัวเครื่องโทรศัพท์ที่ต่อกับเบอร์ 100 รองรับ CallerID ด้วย มันก็จะโชว์ว่าเบอร์ 401 โทรเข้ามา

*** บางท่านอาจจะสงสัยว่า เบอร์ 401 จะกด 100 ตรงๆเลยได้มั๊ย ผมขอตอบว่าปกติจะไม่ได้ครับเพราะเมื่อกด 100 ตู้ PBX มันจะเช็คเจอว่าเบอร์นี้ไม่ได้อยู่บนตัวมัน เราก็จะได้ยินตู๊ดๆๆๆๆ หรือเสียงบอกว่าไม่มีเบอร์นี้ แล้วแต่ตู้ PBX หน่ะครับ แล้วอาจจะถามต่อว่ามีทางมั๊ย มีครับ แต่ต้องคอนฟิกตู้ PBX เพิ่มนิดหน่อย ***

โค้ด: เลือกทั้งหมด
[Mar 22 16:39:58]     -- Starting simple switch on 'DAHDI/1-1'
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:1] NoOp("DAHDI/1-1", "Entering from-zaptel with DID == ") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:2] Ringing("DAHDI/1-1", "") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:3] Set("DAHDI/1-1", "DID=s") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:4] NoOp("DAHDI/1-1", "DID is now s") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:5] GotoIf("DAHDI/1-1", "1?zapok:notzap") in new stack
[Mar 22 16:39:59]     -- Goto (from-zaptel,s,8)
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:8] NoOp("DAHDI/1-1", "Is a Zaptel Channel") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:9] Set("DAHDI/1-1", "CHAN=1-1") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:10] Set("DAHDI/1-1", "CHAN=1") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:11] Macro("DAHDI/1-1", "from-zaptel-1,s,1") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:12] NoOp("DAHDI/1-1", "Returned from Macro from-zaptel-1") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-zaptel:13] Goto("DAHDI/1-1", "from-pstn,s,1") in new stack
[Mar 22 16:39:59]     -- Goto (from-pstn,s,1)
[Mar 22 16:39:59]     -- Executing [s@from-pstn:1] Set("DAHDI/1-1", "__FROM_DID=s") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-pstn:2] Gosub("DAHDI/1-1", "app-blacklist-check,s,1") in new stack
[Mar 22 16:39:59]     -- Executing [s@app-blacklist-check:1] GotoIf("DAHDI/1-1", "0?blacklisted") in new stack
[Mar 22 16:39:59]     -- Executing [s@app-blacklist-check:2] Set("DAHDI/1-1", "CALLED_BLACKLIST=1") in new stack
[Mar 22 16:39:59]     -- Executing [s@app-blacklist-check:3] Return("DAHDI/1-1", "") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-pstn:3] ExecIf("DAHDI/1-1", "0 ?Set(CALLERID(name)=401)") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-pstn:4] Set("DAHDI/1-1", "__CALLINGPRES_SV=allowed_not_screened") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-pstn:5] Set("DAHDI/1-1", "CALLERPRES()=allowed_not_screened") in new stack
[Mar 22 16:39:59]     -- Executing [s@from-pstn:6] Goto("DAHDI/1-1", "app-announcement-38,s,1") in new stack
[Mar 22 16:39:59]     -- Goto (app-announcement-38,s,1)
[Mar 22 16:39:59]     -- Executing [s@app-announcement-38:1] GotoIf("DAHDI/1-1", "0?begin") in new stack
[Mar 22 16:39:59]     -- Executing [s@app-announcement-38:2] Answer("DAHDI/1-1", "") in new stack
[Mar 22 16:39:59]     -- Executing [s@app-announcement-38:3] Wait("DAHDI/1-1", "1") in new stack
[Mar 22 16:40:01]     -- Executing [s@app-announcement-38:4] NoOp("DAHDI/1-1", "Playing announcement OLD-PBX") in new stack
[Mar 22 16:40:01]     -- Executing [s@app-announcement-38:5] Playback("DAHDI/1-1", ",noanswer") in new stack
[Mar 22 16:40:01]     -- Executing [s@app-announcement-38:6] Goto("DAHDI/1-1", "disa,2,1") in new stack
[Mar 22 16:40:01]     -- Goto (disa,2,1)
[Mar 22 16:40:01]     -- Executing [2@disa:1] Set("DAHDI/1-1", "_DISA="disa,2,newcall"") in new stack
[Mar 22 16:40:01]     -- Executing [2@disa:2] Set("DAHDI/1-1", "_DISACONTEXT=from-internal") in new stack
[Mar 22 16:40:01]     -- Executing [2@disa:3] Set("DAHDI/1-1", "_KEEPCID=TRUE") in new stack
[Mar 22 16:40:01]     -- Executing [2@disa:4] Set("DAHDI/1-1", "TIMEOUT(digit)=5") in new stack
[Mar 22 16:40:01]     -- Digit timeout set to 5.000
[Mar 22 16:40:01]     -- Executing [2@disa:5] Set("DAHDI/1-1", "TIMEOUT(response)=10") in new stack
[Mar 22 16:40:01]     -- Response timeout set to 10.000
[Mar 22 16:40:01]     -- Executing [2@disa:6] DISA("DAHDI/1-1", "no-password,disa-dial") in new stack
[Mar 22 16:40:01]     -- Remote UNIX connection
[Mar 22 16:40:01]     -- Remote UNIX connection disconnected
[Mar 22 16:40:07]     -- Executing [100@disa-dial:1] NoOp("DAHDI/1-1", "called 100 in from-internal by disa,2,newcall") in new stack
[Mar 22 16:40:07]     -- Executing [100@disa-dial:2] Dial("DAHDI/1-1", "Local/100@from-internal,300,") in new stack
[Mar 22 16:40:07]     -- Called 100@from-internal
[Mar 22 16:40:07]     -- Executing [100@from-internal:1] Set("Local/100@from-internal-a731;2", "__RINGTIMER=30") in new stack
[Mar 22 16:40:07]     -- Executing [100@from-internal:2] Macro("Local/100@from-internal-a731;2", "exten-vm,novm,100") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:1] Macro("Local/100@from-internal-a731;2", "user-callerid,") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:1] ExecIf("Local/100@from-internal-a731;2", "0]?Set(CALLERID(number)=0401)") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:2] ExecIf("Local/100@from-internal-a731;2", "0]?Set(CALLERID(number)=0401)") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:3] ExecIf("Local/100@from-internal-a731;2", "0?Set(CALLERID(number)=)") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:4] Set("Local/100@from-internal-a731;2", "AMPUSER=401") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:5] GotoIf("Local/100@from-internal-a731;2", "1?report") in new stack
[Mar 22 16:40:07]     -- Goto (macro-user-callerid,s,13)
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:13] GotoIf("Local/100@from-internal-a731;2", "0?continue") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:14] Set("Local/100@from-internal-a731;2", "__TTL=64") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:15] GotoIf("Local/100@from-internal-a731;2", "1?continue") in new stack
[Mar 22 16:40:07]     -- Goto (macro-user-callerid,s,22)
[Mar 22 16:40:07]     -- Executing [s@macro-user-callerid:22] NoOp("Local/100@from-internal-a731;2", "Using CallerID "System.        " <401>") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:2] Set("Local/100@from-internal-a731;2", "RingGroupMethod=none") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:3] Set("Local/100@from-internal-a731;2", "VMBOX=novm") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:4] Set("Local/100@from-internal-a731;2", "EXTTOCALL=100") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:5] Set("Local/100@from-internal-a731;2", "CFUEXT=") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:6] Set("Local/100@from-internal-a731;2", "CFBEXT=") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:7] Set("Local/100@from-internal-a731;2", "RT=""") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:8] Macro("Local/100@from-internal-a731;2", "record-enable,100,IN") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-record-enable:1] GotoIf("Local/100@from-internal-a731;2", "1?check") in new stack
[Mar 22 16:40:07]     -- Goto (macro-record-enable,s,4)
[Mar 22 16:40:07]     -- Executing [s@macro-record-enable:4] ExecIf("Local/100@from-internal-a731;2", "0?MacroExit()") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-record-enable:5] GotoIf("Local/100@from-internal-a731;2", "0?Group:OUT") in new stack
[Mar 22 16:40:07]     -- Goto (macro-record-enable,s,15)
[Mar 22 16:40:07]     -- Executing [s@macro-record-enable:15] GotoIf("Local/100@from-internal-a731;2", "1?IN") in new stack
[Mar 22 16:40:07]     -- Goto (macro-record-enable,s,20)
[Mar 22 16:40:07]     -- Executing [s@macro-record-enable:20] ExecIf("Local/100@from-internal-a731;2", "1?MacroExit()") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-exten-vm:9] Macro("Local/100@from-internal-a731;2", "dial,30,tr,100") in new stack
[Mar 22 16:40:07]     -- Executing [s@macro-dial:1] GotoIf("Local/100@from-internal-a731;2", "1?dial") in new stack
[Mar 22 16:40:07]     -- Goto (macro-dial,s,3)
[Mar 22 16:40:07]     -- Executing [s@macro-dial:3] AGI("Local/100@from-internal-a731;2", "dialparties.agi") in new stack
[Mar 22 16:40:07]     -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
[Mar 22 16:40:07]  dialparties.agi: Starting New Dialparties.agi
[Mar 22 16:40:07]  dialparties.agi: Caller ID name is 'System.' number is '401'
[Mar 22 16:40:07]  dialparties.agi: Methodology of ring is  'none'
[Mar 22 16:40:07]     -- dialparties.agi: Added extension 100 to extension map
[Mar 22 16:40:07]     -- dialparties.agi: Extension 100 cf is disabled
[Mar 22 16:40:07]     -- dialparties.agi: Extension 100 do not disturb is disabled
[Mar 22 16:40:07]  dialparties.agi: EXTENSION_STATE: 0 (NOT_INUSE)
[Mar 22 16:40:07]  dialparties.agi: Extension 100 has ExtensionState: 0
[Mar 22 16:40:07]     -- dialparties.agi: Checking CW and CFB status for extension 100
[Mar 22 16:40:07]     -- dialparties.agi: dbset CALLTRACE/100 to 401
[Mar 22 16:40:07]     -- dialparties.agi: Filtered ARG3: 100
[Mar 22 16:40:07]     -- <Local/100@from-internal-a731;2>AGI Script dialparties.agi completed, returning 0
[Mar 22 16:40:07]     -- Executing [s@macro-dial:7] Dial("Local/100@from-internal-a731;2", "SIP/100,30,tr") in new stack
[Mar 22 16:40:07]   == Using SIP RTP TOS bits 184
[Mar 22 16:40:07]   == Using SIP RTP CoS mark 5
[Mar 22 16:40:07]     -- Called 100
[Mar 22 16:40:07]     -- Local/100@from-internal-a731;1 is ringing
[Mar 22 16:40:07]     -- SIP/100-00000003 is ringing
[Mar 22 16:40:07]     -- Local/100@from-internal-a731;1 is ringing
[Mar 22 16:40:11]     -- SIP/100-00000003 answered Local/100@from-internal-a731;2
[Mar 22 16:40:11]     -- Local/100@from-internal-a731;1 stopped sounds
[Mar 22 16:40:11]     -- Local/100@from-internal-a731;1 answered DAHDI/1-1
[Mar 22 16:40:11]     -- Executing [h@macro-dial:1] Macro("Local/100@from-internal-a731;2", "hangupcall") in new stack
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:1] GotoIf("Local/100@from-internal-a731;2", "1?noautomon") in new stack
[Mar 22 16:40:11]     -- Goto (macro-hangupcall,s,3)
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:3] NoOp("Local/100@from-internal-a731;2", "TOUCH_MONITOR_OUTPUT=") in new stack
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:4] GotoIf("Local/100@from-internal-a731;2", "1?noautomon2") in new stack
[Mar 22 16:40:11]     -- Goto (macro-hangupcall,s,6)
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:6] NoOp("Local/100@from-internal-a731;2", "MONITOR_FILENAME=") in new stack
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:7] GotoIf("Local/100@from-internal-a731;2", "1?skiprg") in new stack
[Mar 22 16:40:11]     -- Goto (macro-hangupcall,s,10)
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:10] GotoIf("Local/100@from-internal-a731;2", "1?skipblkvm") in new stack
[Mar 22 16:40:11]     -- Goto (macro-hangupcall,s,13)
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:13] GotoIf("Local/100@from-internal-a731;2", "1?theend") in new stack
[Mar 22 16:40:11]     -- Goto (macro-hangupcall,s,15)
[Mar 22 16:40:11]     -- Executing [s@macro-hangupcall:15] Hangup("Local/100@from-internal-a731;2", "") in new stack
[Mar 22 16:40:11]   == Spawn extension (macro-hangupcall, s, 15) exited non-zero on 'Local/100@from-internal-a731;2' in macro 'hangupcall'
[Mar 22 16:40:11]   == Spawn extension (macro-dial, s, 7) exited non-zero on 'Local/100@from-internal-a731;2' in macro 'dial'
[Mar 22 16:40:11]   == Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'Local/100@from-internal-a731;2' in macro 'exten-vm'
[Mar 22 16:40:11]   == Spawn extension (from-internal, 100, 2) exited non-zero on 'Local/100@from-internal-a731;2'
[Mar 22 16:41:00]   == Spawn extension (disa-dial, 100, 2) exited non-zero on 'DAHDI/1-1'
[Mar 22 16:41:00]     -- Hungup 'DAHDI/1-1'


ก็เป็นอันว่าหลังจากเปิดกระทู้ทิ้งไว้ข้ามอาทิตย์ 55+ ตอนนี้ก็คอนฟิกเสร็จและใช้งานได้แล้วนะครับ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 6995
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย chollathee » 15 มี.ค. 2012 10:08

ผมขอแทรกนะครับ
ไม่รู้ว่าจะทำให้ไอเดียท่านเปลี่ยนหรือเปล่า


ปกติการทำแบบนี้ ต้องชั่งน้ำหนักก่อนนะครับ ว่า Extension ฝั่งไหนมากที่สุด เราจะยึดฝั่งนั้นเป็นหลัก
หรือต้องการทยอยเปลี่ยนมาเป็นระบบ VoIP หรือเปล่า ต้องตั้งคำถามไว้ในใจก่อน (หมายถึงให้ความสำคัญกับฝั่งไหนมากกว่ากัน)

เพราะ
1. ถ้า Extension ของฝั่ง PBX เดิมมากกว่า การเชื่อมต่อระหว่าง IP-PBX ไปยัง PBX เดิม ให้ใช้ ATA แทน โดย Register ATA เหล่านั้น เป็น Extension ของ IP-PBX แล้วต่อเข้ากับ Trunk หรือ CO ของฝั่ง PBX เดิม จะสะดวกที่สุด
* ฝั่ง PBX เดิม โทรไปหา Extension ใน IP-PBX จะติดต่อได้เกือบโดยตรง (ต้องตัด 9 ก่อน หรือแล้วแต่จะตั้งค่าไว้) ไม่ติด IVR แต่ฝั่ง IP-PBX โทรหา Extension ใน PBX เดิม จะติด IVR ของฝั่ง PBX เดิม

2. ถ้าต้องการทยอยเปลี่ยนมาเป็นระบบ VoIP ก็ทำอย่างที่ท่านนำเสนอไอเดียมาได้เลย เพราะ Extension ฝั่ง IP-PBX จะใช้งานสะดวกที่สุด
* ฝั่ง PBX เดิม โทรไปหา Extension ใน IP-PBX จะติด IVR ก่อน หรือย่างน้อย ก็ต้องกดเบอร์หลายหลัก อาจทำให้สับสนได้ แต่ฝั่ง IP-PBX โทรหา Extension ใน PBX เดิม จะไม่ติด IVR ติดต่อได้โดยตรง ไร้รอยต่อ (ทอเต็มผืน หลับเต็มตื่น โอเปอเรเตอร์แอบนอน ฟิ้ววววว)

ไอเดียท่าน
5. โทรไปยังเบอร์ในตู้ PBX กด 7 ตามด้วยเบอร์ที่ตู้ เช่น 7400 หรือ 7401 แต่ต้องการให้เวลายูสเซอร์ใช้งาน เขาสามารถกดเบอร์ 400 หรือ 401 ได้เลย

จริงๆ ก็กด 400, 401 ... ได้เลยนะครับ เพราะท่านไม่ได้ Register เบอร์ Extension เหล่านี้ใน IP-PBX อยู่แล้ว เพราะฉะนั้น เวลาที่กดเบอร์ ระบบไม่พบ Extension ก็จะหาทางออกไปยัง Outbound Trunk อยู่แล้ว กำหนด Pattern ตรงนั้นไว้ได้เลย ว่า 4XX ออก Trunk ไหนได้เลย


จริงๆ ถ้าเชื่อมต่อด้วย E1 จะง่ายขึ้นเยอะเลยนะ เสมือนเป็นเครือข่ายเดียวกันเลย แต่คงแพงมากๆ
เพราะการ์ด E1 บน PBX รุ่นเก่านั้นแพงมาก มหาโหดเลยล่ะ (นั่นทำให้ผมทิ้ง PBX รุ่น KX-TD1232BX 2 ตู้ 20 CO, 128 EXT มาทำ IP-PBX โดยตรงเลย ค่าการ์ด E1 แสนนึง และหาของยากมาก ถึงมากที่สุดด้วย)
chollathee
Gold Member
 
โพสต์: 78
ลงทะเบียนเมื่อ: 06 เม.ย. 2010 17:42

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย Nostadamud » 19 มี.ค. 2012 11:39

ยัง งงๆ นิดนึงเดี๋ยวจะลองเทสดูมั่งนะครับ
Nostadamud
Silver Member
 
โพสต์: 41
ลงทะเบียนเมื่อ: 25 ต.ค. 2010 09:08

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย nuiz » 19 มี.ค. 2012 12:12

โห้ เซียนจริงๆครับ ขอแบบ step-by-step เลยได้ป่ะครับ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 6995
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย sitt01 » 19 มี.ค. 2012 13:53

ขอเสนอ ไอเดียบ้างนะครับ
ของผมตอนนี้ใช้อยู่
แยกกลุ่มเบอร์ ของ extension ออกเป็นสองกลุ่ม 1 กลุ่มที่ใช้กับ PBX ขึ้นต้นด้วยเลข 1 และ 2 ส่วน ของ VOIP ใช้ 3 และ 4
ทาง PBX กด 85 แล้วตามด้วยเบอร์ภายใน 3xx หรือ 4xx ที่ต้องการ เนื่องจากติดข้อกำหนดของตู้ PBX ที่ออก CO ต้องใช้เลขนี้เท่านั้น
ส่วนทาง VOIP กำหนดให้ใช้ กด 9 เพื่อโทรไป PBX แต่ user ใช้ กดหมายเลขที่ต้องการได้เลย เพราะไปกำหนดค่าแล้วว่าถ้าขึ้นต้นด้วเบอร์ 1 หรือ 2 ให้ โทรเป็น 91xx หรือ 92xx
ทำให้ User ทางฝั่ง VOIP กดแค่ 3 หลักเท่านั้น
ข้อดีของการเป็นคนทำคอมพิวเตอร์ คือ ทำยังไงคอมพิวเตอร์ก็จะไม่เจ๊ง ถ้าไม่ไปยุ่งกับ Hardware อย่างมากก็แค่เสียเวลาลง โปรแกรมใหม่ แต่อย่างว่ายิ่งลงบ่อยเท่าไรก็ยิ่งขำนาญเท่านี้น
sitt01
Gold Member
 
โพสต์: 316
ลงทะเบียนเมื่อ: 17 ม.ค. 2011 14:19

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย chollathee » 19 มี.ค. 2012 16:15

น่าเอา SPA-3102 มาลองเล่นดูนะครับ

เพราะมีทั้ง FXO และ FXS อาจจะไม่ต้องมีวิธีการที่ยุ่งยากเลยก็ได้ (ให้มันลิงค์กันภายใน SPA-3102 แล้วให้ Extension ของ IP-PBX กับ PBX เดิม ติดต่อกันโดยตรงเลย โดยให้ SPA-3102 เป็นตัวเชื่อม)
เดี๋ยวว่างแล้ว ลองทำดูมั่งดีกว่า
chollathee
Gold Member
 
โพสต์: 78
ลงทะเบียนเมื่อ: 06 เม.ย. 2010 17:42

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย nuiz » 22 มี.ค. 2012 17:13

เขียนเสร็จหล่ะคับ เทสแล้วว่าเวอร์ค เป็นอีกทางเลือกหนึ่งของท่านที่ต้องการเชื่อม Elastix กับตู้ PBX เครื่องเดิม จากนั้นก็ทยอยย้ายยูสเซอร์บน PBX เดิมมาอยู่บน Elastix
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 6995
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย kunawut » 10 เม.ย. 2012 05:26

ทำไง OLD_PBX จึงไม่รับสายจาก DAHDI/1-1 ในทันทีครับ (ดูใน log เหมือนจะรอจนมีผู้มารับสายจริงๆ
ของผม ทันทีที่ Called r0/401 แล้วจะได้รับการ answered จาก OLD_PBX ทันที (ทั้งๆที่ 401 ยังไม่ได้รับสาย)

[Mar 22 15:41:12] -- Executing [s@macro-dialout-trunk:19] Dial("SIP/100-00000000", "DAHDI/r0/401,300,") in new stack
[Mar 22 15:41:12] -- Called r0/401
[Mar 22 15:41:16] -- DAHDI/1-1 answered SIP/100-00000000
kunawut
Silver Member
 
โพสต์: 27
ลงทะเบียนเมื่อ: 04 เม.ย. 2011 08:07

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย nuiz » 10 เม.ย. 2012 10:11

kunawut เขียน:ทำไง OLD_PBX จึงไม่รับสายจาก DAHDI/1-1 ในทันทีครับ (ดูใน log เหมือนจะรอจนมีผู้มารับสายจริงๆ
ของผม ทันทีที่ Called r0/401 แล้วจะได้รับการ answered จาก OLD_PBX ทันที (ทั้งๆที่ 401 ยังไม่ได้รับสาย)

[Mar 22 15:41:12] -- Executing [s@macro-dialout-trunk:19] Dial("SIP/100-00000000", "DAHDI/r0/401,300,") in new stack
[Mar 22 15:41:12] -- Called r0/401
[Mar 22 15:41:16] -- DAHDI/1-1 answered SIP/100-00000000


ก็น่าจะเหมือนๆกันนะครับ กด 401 แป๊บนึงก็ได้ยินเรียงสัญญาณรอสาย ตู๊ด ๆ ตู๊ด ๆ จากตู้สาขาเลย

[Mar 22 15:41:12] -- Called r0/401
[Mar 22 15:41:16] -- DAHDI/1-1 answered SIP/100-00000000
[Mar 22 15:44:25] -- Executing [h@macro-dialout-trunk:1] Macro("SIP/100-00000000", "hangupcall,") in new stack

เริ่มได้ยินตั้งแต่บรรทัดที่สอง "DAHDI/1-1 answered SIP/100-00000000" คุยๆๆๆๆแล้ววางสายในอีก 3 นาทีต่อมา เลยโชว์บรรทัดที่ 3 "Executing [h@macro-dialout-trunk:1] Macro("SIP/100-00000000", "hangupcall,")" in new stack หน่ะครับ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 6995
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: เทคนิคการโทรจาก Extension บน Elastix ไป Extension บนตู้ PBX

โพสต์โดย max0405 » 01 มิ.ย. 2015 16:52

ผมกำลังทำอยู่ใช่หลักการนี้แต่ติดปัญหาตรง elastix โทรไปยัง pabx ไม่ได้ แต่ pabx โทรหา elastix ได้

elastix-unified-communications-software-f28/elastix-t3434.html
max0405
Gold Member
 
โพสต์: 151
ลงทะเบียนเมื่อ: 10 ธ.ค. 2014 09:26


ย้อนกลับไปยัง Elastix - Unified Communications Software

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

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

cron