ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

Asterisk Opensource IP Pbx

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nottycrazy2 » 10 มี.ค. 2011 15:57

สวัสดีครับพี่ nuiz ไม่ทราบว่าในส่วนของ extension.conf ที่เราจะเขียนให้สอดคล้องกับ trunk ที่พี่ได้เอาตัสอย่างมาลง เราใช้ตัวเดิมได้ไหมครับผม แล้วเปลี่ยน context น่ะครับ
nottycrazy2
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 01 มี.ค. 2011 00:18

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nuiz » 10 มี.ค. 2011 15:59

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

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nottycrazy2 » 10 มี.ค. 2011 16:05

มาไวจังครับพี่ ครับตามของเดิมเลยก็ได้ครับผม เอาเป็น sip trunk ก่อนก็ได้ครับ ตามที่พี่ถรันัดค ผมอยากเห็นการเขียน sip trunk ให้เชื่อมต่อกับ extension.conf ให้ทำการโทรข้าม sever ได้น่ะครับ ตอนนี้ผมมาลงดูและลองเขียนคิดว่ามันพันกันยุ่งแล้วล่ะครับ ฮาๆๆ :lol: ยังไงรบกวนพี่ด้วยครับผม เด๋วพอได้ sip แ้ลวผมค่อยขยับไป iax ครับผม
nottycrazy2
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 01 มี.ค. 2011 00:18

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nuiz » 10 มี.ค. 2011 16:50

เอา iax2 เลยก็ได้ครับ ลองทำตามบทความนี้ เวอร์คแน่นอน ลอกทุกอย่างก่อนยกเว้น ip address แล้วค่อยลองแก้ context ดู

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

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nottycrazy2 » 11 มี.ค. 2011 03:47

ตามไปและลองทำตามแล้วครับพี่ โทรได้แล้วครับผม ยอดเยี่ยมจริงๆครับ ต้องขอขอบคุณพี่มากๆเลยครับผม :D
nottycrazy2
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 01 มี.ค. 2011 00:18

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nottycrazy2 » 16 มี.ค. 2011 23:34

สวัสดีครับพี่ nuiz หรือพี่หนุ่ย :D
หายไปนานเลยครับสำหรับผมหลังจากที่อ่านบทความ เชื่อมต่อ Asterisk ด้วย IAX2 ของพี่แล้วผมก็ได้ลองทำและประสบความสำเร็จดังต้องการครับ ตอนนี้สามารทำให้ หลายๆSever สามารถโทรหากันได้ด้วย Protocol IAX ตามที่ต้องการได้แล้ว ต่อมาผมได้ทำการเข้าไปศึกษาบทความ การใช้งาน Asterisk Voicemail ตอนที่ 1 , 2 และ 3 ตามลำดับ ทำให้สามารถฝากข้อความเสียงใน sever ของผมได้ตามต้องการเช่นกันครับ แต่ไม่สามารถให้ระบบแจ้งเตือนใน e-mail ได้ ซึ่งตรงนี้ผมไม่ทราบจริงๆครับว่าต้องทำยังไง ซึ่งผมก็ได้ทำตามบทความที่พี่ทำไว้ทุกอย่าง ระบบก็ไม่ได้ส่งเมลเข้าไปบอกเลยว่ามีข้อความเสียงเข้ามาครับ :shock: นี่เป็นตัวอย่างคอนฟิกไฟล์ต่างๆของผมครับ

[Sever A]
iax.conf
โค้ด: เลือกทั้งหมด
;this is an iax configuration for Sever A headoffice      "Sever A"

[general]
bindaddress=0.0.0.0:4569
iaxcompact=yes
delayreject=yes
amaflags=default
bandwidth=high
autokill= yes
codecpriority=host
minregexpire=60
maxregexpire=3600
authdebug=no
autokill=yes
trunktimestamps=no
trunkfreq=20

;register=> from_SeverA:2222@192.168.1.200

[guest]
type=friend
context=default
callerid="Guest IAX User"

;[1000]
;type=friend
;host=dynamic
;context=phones
;auth=md5
;secret=1234
;callerid="Client 1000" <SeverA>
;qualify=yes
;disallow=all
;allow=gsm
;allow=ulaw
;allow=alaw


[from_SeverB]

;for receiving inbound calls from SeverBoffice - 192.168.1.200   "From Sever B"

type=friend
auth=md5
context=inbound
secret=4444
disallow=all
allow=gsm
allow=ulaw
allow=alaw

[to_SeverB]

;for making outbound calls to SeverB office -  192.168.1.200      "To Sever B"

type=peer
auth=md5
secret=2222
host= 10.0.2.42
username=from_SeverA
qualify=yes
disallow=all
allow=gsm
allow=ulaw
allow=alaw


SIP.conf
โค้ด: เลือกทั้งหมด
[general]

notifymimetype=application/simple-message-summary
vmexten=*99

[1000]
username=1000
type=friend
host=dynamic
context=phones
auth=md5
secret=1234
callerid="Client 1000" <SeverA_1000>
qualify=yes
port=5060
disallow=all
allow=gsm
allow=ulaw
allow=alaw
nat=yes
mailbox=1000@voip4share


[1001]
username=1001
type=friend
host=dynamic
context=phones
auth=md5
secret=1234
callerid="Client 1001" <SeverA_1001>
qualify=yes
port=5060
disallow=all
allow=gsm
allow=ulaw
allow=alaw
nat=yes
mailbox=1001@voip4share


Extension.conf
โค้ด: เลือกทั้งหมด
[general]
static=yes
writeprotect=no
clearglobalvars=no

[globals]
CONSOLE=Console/dsp

TRY=3

[inbound]
include => phones

[phones]
include => outbound
exten => _1XXX,1,Dial(SIP/${EXTEN},20,tT)
exten => _1XXX,n,VoiceMail(${EXTEN}@voip4share,u)
exten => _1XXX,102,VoiceMail(${EXTEN}@voip4share,b)

[outbound]
exten => _2XXX,1,Dial(IAX2/to_SeverB/${EXTEN},20,tT)
exten => _2XXX,n,Hangup


voicemail.conf
โค้ด: เลือกทั้งหมด
[general]

format=wav49|gsm
serveremail=notty_crazy2@hotmail.com
attach=yes
attachfmt=wav49|gsm
saycid=yes
sayduration=yes

emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}
emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Mailbox  Service\n

emaildateformat=%A, %d %B %Y at %H:%M:%S
mailcmd=/usr/sbin/sendmail -t
tz=Asia/Bangkok



[voip4share]
1000 =>1000, Notty, notty_crazy2@hotmail.com             ; [color=#FF0000]เมลนี้เป็นเมลผมครับ[/color]
1001 =>1001, Notty1001, nottycrazy2@gmail.com;


[Sever B]
iax.conf

โค้ด: เลือกทั้งหมด
;this is an iax configuration for SeverB branch office         "Sever B"

[general]

bindaddress=0.0.0.0:4569
iaxcompact=yes
delayreject=yes
amaflags=default
bandwidth=high
autokill= yes
codecpriority=host
minregexpire=60
maxregexpire=3600
authdebug=no
autokill=yes
trunktimestamps=no
trunkfreq=20

;register => SeverB:4444@192.168.1.100

[guest]
type=friend
context=default
callerid="Guest IAX User"

;[2000]
;type=friend
;host=dynamic
;context=phones
;auth=md5
;secret=1234
;callerid="Client 2000" <SeverB>
;qualify=yes
;disallow=all
;allow=gsm
;allow=ulaw
;allow=alaw

[from_SeverA]

;for inbound from SeverA headoffice - 192.168.1.100      "From Sever A"

type=friend
auth=md5
context=inbound
secret=2222
disall=all
allow=gsm
allow=ulaw
allow=alaw

[to_SeverA]
;for outbound call to Sever A headoffice - 10.0.2.41   "To Sever A"
type=peer
auth=md5
secret=4444
host=192.168.1.100
username=from_SeverB
qualify=yes
disallow=all
allow=gsm
allow=ulaw
allow=alaw


sip.conf
โค้ด: เลือกทั้งหมด
[general]

notifymimetype=application/simple-message-summary
vmexten=*99

[2000]
username=2000
type=friend
host=dynamic
context=phones
auth=md5
secret=1234
callerid="Client 2000" <SeverB_2000>
qualify=yes
port=5060
disallow=all
allow=gsm
allow=ulaw
allow=alaw
nat=yes
mailbox=2000@voip4share

[2001]
username=2001
type=friend
host=dynamic
context=phones
auth=md5
secret=1234
callerid="Client 2001" <SeverB_2001>
qualify=yes
port=5060
disallow=all
allow=gsm
allow=ulaw
allow=alaw
nat=yes
mailbox=2001@voip4share


Extension.conf
โค้ด: เลือกทั้งหมด
[general]
static=yes
writeprotect=no
clearglobalvars=no

[globals]
CONSOLE=Console/dsp

TRY=3

[inbound]
include => phones

[phones]
include => outbound
exten => _2XXX,1,Dial(SIP/${EXTEN},20,tT)
exten => _2XXX,n,VoiceMail(${EXTEN}@voip4share,u)
exten => _2XXX,102,VoiceMail(${EXTEN}@voip4share,b)

[outbound]
exten => _1XXX,1,Dial(IAX2/to_SeverA/${EXTEN},20,tT)
exten => _1XXX,n,Hangup


voicemail.conf
โค้ด: เลือกทั้งหมด
[general]

format=wav49|gsm
serveremail=notty_crazy2@hotmail.com
attach=yes
attachfmt=wav49|gsm
saycid=yes
sayduration=yes

emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}
emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Mailbox  Service\n

emaildateformat=%A, %d %B %Y at %H:%M:%S
mailcmd=/usr/sbin/sendmail -t
tz=Asia/Bangkok



[voip4share]

2000 =>2000, Notty, notty_crazy2@hotmail.com



นี่เป็นไฟบ์คอนฟิกของผมทั้งหมดครับ คือเมื่อทำการโทรแล้วมีการฝากข้อความ ซึ่งสามารถฟังข้อความที่ฝากไว้ได้โดยกด *99 ตามที่เขียน dialplan แต่ไม่มีเมลมาเตือนที่เมลของผมว่ามีการฝากข้อความไว้น่ะครับ ซึ่งผมไม่รู้ว่าควรแก้ตรงไหนดี เป็นทั้งการฝากข้อความจากทั้งใน Sever เดียวกัน และ การโทรข้าม Sever เลยครับพี่ :P

อีกข้อหนึ่งที่ผมสงสัยก็คือ เมื่อมีการโทรข้าม Sever ทั้งจาก A ไป B และ B ไป A ในกรณีมีการฝากข้อความเสียง เมื่อเราฝากเสร็จแล้วเราก็จะกด # เพื่อทำการสิ้นสุดการฝากข้อความใช่ไหมครับ พอผมกดแล้ว ระบบไม่ได้ตัดเป็นการจบการฝากข้อความครับ แต่จะมีเสียงพูดขึ้นมาต่อแล้วก็เป็นเสียง dial tone ไปครับผู้ใช้ต้องทำการวางสายเอง แต่ข้อความเสียงได้ถูกบันทึกลงระบบนะครับ (ซึ่งการโทรใน Sever เดียวกันจะไม่เป็นครับ กด # แล้วระบบตัด Thank you เลยครับผม)
ผมได้ลอง(มั่วครับ :D )แก้ไข Extension.conf ดังนี้แล้วก็ไม่หายครับ
โค้ด: เลือกทั้งหมด
[phones]
include => outbound

exten => _1XXX,1,Answer()
exten => _1XXX,n,Noop()
exten => _1XXX,n,Dial(SIP/${EXTEN},20,tT)
exten => _1XXX,n,VoiceMail(${EXTEN}@voip4share,u)
exten => _1XXX,102,VoiceMail(${EXTEN}@voip4share,b)
exten => _1XXX,n,Hangup()


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

มาทีนึงนี่ยาวเลยครับพี่ ยังไงขอความกรุณาพี่หนุ่ยและท่านผู้รู้ท่านอื่นช่วยแนะนำด้วยครับ ขอบคุณมากๆครับผม
nottycrazy2
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 01 มี.ค. 2011 00:18

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nuiz » 17 มี.ค. 2011 00:29

สรุปว่ามีอยู่ 2 ปัญหานะครับ ตอนนี้
1. ฝากข้อความได้ แต่ไม่ส่งเข้าอีเมล์
** เดี๋ยวว่างๆจะเทสให้อีกรอบครับ ***
ระหว่างรอ เช็คว่า server ออกเน็ตได้หรือเปล่า และ ping ด้วยชื่อได้มั๊ย เช่น ping จาก linux prompt
ping http://www.ku.ac.th
จะเห็น ip address ของ http://www.ku.ac.th แสดงออกมา ถ้าไม่เห็น ip address แสดงว่า ไม่ได้คอนฟิก name server ไว้ในเครื่อง

** แก้ไข ** จริงๆต้องไม่มี http://

2. ถ้าฝากข้อความข้าม server จะกด # เพื่อจบข้อความไม่ได้
** แสดงว่ามีปัญหารับส่ง dtmf ข้าม server ครับ **
ให้เพิ่มบรรทัด dtmfmode = rfc2833 หรือไม่ก็ dtmfmode = auto ในไฟล์ iax.conf ใส่เข้าไปในคอนฟิกของเบอร์ Extension แต่ละเบอร์ และอันที่เป็น [Server...] แบบนี้

[1000]

dtmfmode = rfc2833

[to_serverA]

dtmfmode = rfc2833

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

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nottycrazy2 » 17 มี.ค. 2011 14:07

nuiz เขียน:สรุปว่ามีอยู่ 2 ปัญหานะครับ ตอนนี้
1. ฝากข้อความได้ แต่ไม่ส่งเข้าอีเมล์
** เดี๋ยวว่างๆจะเทสให้อีกรอบครับ ***
ระหว่างรอ เช็คว่า server ออกเน็ตได้หรือเปล่า และ ping ด้วยชื่อได้มั๊ย เช่น ping จาก linux prompt
ping http://www.ku.ac.th
จะเห็น ip address ของ http://www.ku.ac.th แสดงออกมา ถ้าไม่เห็น ip address แสดงว่า ไม่ได้คอนฟิก name server ไว้ในเครื่อง

2. ถ้าฝากข้อความข้าม server จะกด # เพื่อจบข้อความไม่ได้
** แสดงว่ามีปัญหารับส่ง dtmf ข้าม server ครับ **
ให้เพิ่มบรรทัด dtmfmode = rfc2833 หรือไม่ก็ dtmfmode = auto ในไฟล์ iax.conf ใส่เข้าไปในคอนฟิกของเบอร์ Extension แต่ละเบอร์ และอันที่เป็น [Server...] แบบนี้

[1000]

dtmfmode = rfc2833

[to_serverA]

dtmfmode = rfc2833

3. ไฟล์เสียงเก็บอยู่ที่
/var/lib/asterisk/sounds หรือไม่ก็ /var/lib/asterisk/sounds/en
ไฟล์ที่เกี่ยวข้องกับ voicemail จะขึ้นต้นด้วย vm- ครับ


สวัสดีครับพี่หนุ่ยเด๋วผมจะลองทำตามที่พี่แนะนำก่อนครับ ได้ผลยังไงเด๋วผมจะกลับมารายงานครับผม ขอบคุณครับพี่
nottycrazy2
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 01 มี.ค. 2011 00:18

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nottycrazy2 » 17 มี.ค. 2011 16:02

สวัสดีครับพี่หนุ่ย จากการที่เอาคำแนะนำของพี่ไปทดสอบแล้วได้ผลดังนี้ครับ
1. ทำการ ping http://www.ku.ac.th หรือ เว็ปอื่นๆ ไม่ด้ครับ
ระบบแสดงว่า ping : unknow host http://www.ku.ac.th ครับผม ไม่ทราบต้องแก้ไขอย่างไรต่อครับ

2. ทำการลองเพิ่ม dtmfmode = rfc2833 และ dtmfmode = auto ในไฟล์ iax.conf และในคอนฟิกของเบอร์ Extension แต่ละเบอร์ผลปรากฎว่า
dtmfmode = rfc2833 จะทำให้ระบบรวนๆครับ โทรหากันได้บ้างไม่ได้บ้างครับ (ไม่รู้เกี่ยวไหม ตอนที่ไม่ใส่โทรได้ 100% ครับ) ทั้งใน sever เดียวกันและคนละ sever ครับ

dtmfmode = auto จะสามารถโทรได้ปกติครับ แต่ปัญหาดังข้างต้นยังมีอยู่ครับ สรุปคือ ไม่เกิดผลตอนที่เรากด # ตัดการฝากข้อความ ตอนเราโทรข้าม sever ครับผม

ยังไงก็ขอขอบคุณสำหรับคำแนะนำครับพี่ ขอบคุณครับ
nottycrazy2
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 01 มี.ค. 2011 00:18

Re: ขอคำแนะนำในการ เชื่่อม 2 Asterisk sever ครับ

โพสต์โดย nuiz » 17 มี.ค. 2011 16:10

โทษทีครับ ต้องไม่มี http:// ครับ ผมเขียนผิด ให้ ping แค่ www.ku.ac.th

ping www.ku.ac.th

ถ้ายัง ping ไม่ได้อีก ให้ทำตามนี้

เวลา ping ชื่อ domain name แล้วขึ้น unknown host แสดงว่าในเครื่องยังไม่ได้เซ็ต name server อ่ะครับ ให้เช็ตที่ไฟล์ /etc/resolv.conf ถ้าไม่มีไฟล์นี้ก็ให้สร้างขึ้นมา พิมพ์ vi /etc/resolv.conf ก็เป็นการสร้างไฟล์แล้ว

แล้วใส่ name server เข้าไป ผมไม่รู้ว่าในเน็ตเวอร์คที่คุณ nottycrazy2 อยู่นั้น มี dns server ไอพีอะไร สมมติว่าเป็น 192.168.1.1 หล่ะกัน ก็ใส่แบบนี้

nameserver 192.168.1.1

ถ้ามีหลายๆตัวก็ใส่เรียงต่อๆกันลงมา ไอพีละบรรทัด แบบนี้

nameserver 192.168.1.1
nameserver 192.168.1.2

ครับ

เมคชัวร์นะครับว่า เครื่องมันออกเน็ตได้

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

ย้อนกลับต่อไป

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

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

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

cron