stepos wrote:Hezký večer,
začínám s Asteriskem, a nejde mi spustit SayNumber
- Code: Select all
-- Starting simple switch on 'DAHDI/1-1'
-- Executing [s@incoming:1] Set("DAHDI/1-1", "CHANNEL(language)=cs") in new stack
-- Executing [s@incoming:2] SayNumber("DAHDI/1-1", "s") in new stack
-- Executing [s@incoming:3] Hangup("DAHDI/1-1", "") in new stack
== Spawn extension (incoming, s, 3) exited non-zero on 'DAHDI/1-1'
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
-- Starting simple switch on 'DAHDI/1-1'
-- Executing [s@incoming:1] Set("DAHDI/1-1", "CHANNEL(language)=cs") in new stack
-- Executing [s@incoming:2] SayNumber("DAHDI/1-1", "s") in new stack
-- Executing [s@incoming:3] Hangup("DAHDI/1-1", "") in new stack
== Spawn extension (incoming, s, 3) exited non-zero on 'DAHDI/1-1'
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
-- Starting simple switch on 'DAHDI/1-1'
-- Executing [s@incoming:1] Set("DAHDI/1-1", "CHANNEL(language)=cs") in new stack
-- Executing [s@incoming:2] SayNumber("DAHDI/1-1", "s") in new stack
-- Executing [s@incoming:3] Hangup("DAHDI/1-1", "") in new stack
== Spawn extension (incoming, s, 3) exited non-zero on 'DAHDI/1-1'
-- Hanging up on 'DAHDI/1-1'
-- Hungup 'DAHDI/1-1'
Když volám, v telefonu pouze zvoní tón, a pak se ozve asi po 4tvrtém zazvonění obsazovací tón.
extension.conf:
- Code: Select all
[incoming]
exten => s,1,Set(CHANNEL(language)=cs)
exten => s,n,SayNumber(${EXTEN})
exten => s,n,Hangup()
co dělám špatně?
Díky za pomoc
Stepan
Já vidím 2 problémy:
1) V Asterisku je/byl trochu zmatek s language/country kódem pro češtinu. Minimálně do verze 1.4, možná 1.6 se používala zkratka cz (ISO 3166) namísto široce rozšířeného a správného cs (ISO 639). Dokonce jsme viděl patch, který to měl opravovat, ale nemyslím si, že to proběhlo. Vývojáři totiž rozlišují/pletou jazyk cs a zemi cz. Abych to zkrátil, já bych zkusil výraz
- Code: Select all
Set(CHANNEL(language)=cz)
2) Jak je koneckonců vidět i z logu, snažíte se pomocí SayNumber vyslovit hodnotu proměnné EXTEN. Jenže tak jak jste to napsal to není číslo, ale výraz "s". To sice z hlediska Asterisk kódu není špatně, ale SayNumber to určitě nezpracuje a nevysloví. Dokonce bych čekal chybovou hlášku. Pro otestování SayNumber bych zkusil např. toto:
- Code: Select all
exten => s,1,Set(CHANNEL(language)=cz)
exten => s,n,SayNumber(5)
exten => s,n,Hangup()
nebo toto:
- Code: Select all
exten => s,1,Goto(5,1)
exten => 5,1,Set(CHANNEL(language)=cz)
exten => 5,n,SayNumber(${EXTEN})
exten => 5,n,Hangup()