language ru
Иммется trixbox. В файле sip.conf прописано
[general]
Language=ru
С внутренего exten при доступ к голосовой почте , конференции и т.д обеспечивается
нормальный выбор language 'ru'
а вот если я пытаюсь попасть на голосовую почту и конференцию из ТФОП через SIP/Trunk
то language 'en'
Executing [100@ext-meetme:2] Set("SIP/10.64.1.62-09bcdf00", "MEETME_ROOMNUM=100") in new stack
-- Executing [100@ext-meetme:3] GotoIf("SIP/10.64.1.62-09bcdf00", "0?READPIN") in new stack
-- Executing [100@ext-meetme:4] Answer("SIP/10.64.1.62-09bcdf00", "") in new stack
-- Executing [100@ext-meetme:5] Wait("SIP/10.64.1.62-09bcdf00", "1") in new stack
-- Executing [100@ext-meetme:6] Set("SIP/10.64.1.62-09bcdf00", "PINCOUNT=0") in new stack
-- Executing [100@ext-meetme:7] Read("SIP/10.64.1.62-09bcdf00", "PIN|enter-conf-pin-number||||") in new stack
-- Playing 'enter-conf-pin-number' (language 'en')
Подскажите как можно это исправить?
-- Executing [100@ext-meetme:6] Set("SIP/10.64.1.62-09bcdf00", "PINCOUNT=0") in new stack
-- Executing [100@ext-meetme:7] Read("SIP/10.64.1.62-09bcdf00", "PIN|enter-conf-pin-number||||") in new stack
-- Playing 'enter-conf-pin-number' (language 'en')
я бы дал ещё один шаг Set(LANGUAGE)=ru
потому что если исполнение не в макросе, та переменная LANGUAGE не наследуется, дефолтное значение = en
Возможно, у вас не полная библиотека русских файлов.
Астериск, когда не находит на русском - подставляет на английском.
пробовал так как вы сказали в [macro-vm] писал Set(LANGUAGE)=ru и Set(LANGUAGE=ru) - нет результата...
вот лог:
-- Executing [s@macro-dial:7] Dial("OOH323/(null)-f090", "SIP/6000|15|trw") in new stack
-- Called 6000
-- SIP/6000-09af1850 is ringing
-- SIP/6000-09af1850 is ringing
-- SIP/6000-09af1850 is ringing
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dial:8] Set("OOH323/(null)-f090", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:10] Set("OOH323/(null)-f090", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:11] GosubIf("OOH323/(null)-f090", "0?docfu|1") in new stack
-- Executing [s@macro-exten-vm:12] GosubIf("OOH323/(null)-f090", "0?docfb|1") in new stack
-- Executing [s@macro-exten-vm:13] Set("OOH323/(null)-f090", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:14] NoOp("OOH323/(null)-f090", "Voicemail is 6000") in new stack
-- Executing [s@macro-exten-vm:15] GotoIf("OOH323/(null)-f090", "0?s-CHANUNAVAIL|1") in new stack
-- Executing [s@macro-exten-vm:16] NoOp("OOH323/(null)-f090", "Sending to Voicemail box 6000") in new stack
-- Executing [s@macro-exten-vm:17] Macro("OOH323/(null)-f090", "vm|6000|CHANUNAVAIL") in new stack
-- Executing [s@macro-vm:1] Macro("OOH323/(null)-f090", "user-callerid|SKIPTTL") in new stack
-- Executing [s@macro-user-callerid:1] NoOp("OOH323/(null)-f090", "user-callerid: Polun 214") in new stack
-- Executing [s@macro-user-callerid:2] Set("OOH323/(null)-f090", "AMPUSER=214") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("OOH323/(null)-f090", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("OOH323/(null)-f090", "0|Set|REALCALLERIDNUM=214") in new stack
-- Executing [s@macro-user-callerid:5] NoOp("OOH323/(null)-f090", "REALCALLERIDNUM is 214") in new stack
-- Executing [s@macro-user-callerid:6] Set("OOH323/(null)-f090", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:7] Set("OOH323/(null)-f090", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("OOH323/(null)-f090", "1?report") in new stack
-- Goto (macro-user-callerid,s,13)
-- Executing [s@macro-user-callerid:13] NoOp("OOH323/(null)-f090", "TTL: 64 ARG1: SKIPTTL") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("OOH323/(null)-f090", "1?continue") in new stack
-- Goto (macro-user-callerid,s,23)
-- Executing [s@macro-user-callerid:23] NoOp("OOH323/(null)-f090", "Using CallerID "Polun" ") in new stack
-- Executing [s@macro-vm:2] Set("OOH323/(null)-f090", "VMGAIN=""") in new stack
-- Executing [s@macro-vm:3] GotoIf("OOH323/(null)-f090", "1?vmx|1") in new stack
-- Goto (macro-vm,vmx,1)
-- Executing [vmx@macro-vm:1] GotoIf("OOH323/(null)-f090", "0?s-CHANUNAVAIL|1") in new stack
-- Executing [vmx@macro-vm:2] Set("OOH323/(null)-f090", "MODE=unavail") in new stack
-- Executing [vmx@macro-vm:3] GotoIf("OOH323/(null)-f090", "1?notdirect") in new stack
-- Goto (macro-vm,vmx,5)
-- Executing [vmx@macro-vm:5] NoOp("OOH323/(null)-f090", "Checking if ext 6000 is enabled: ") in new stack
-- Executing [vmx@macro-vm:6] GotoIf("OOH323/(null)-f090", "1?s-CHANUNAVAIL|1") in new stack
-- Goto (macro-vm,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-vm:1] Macro("OOH323/(null)-f090", "get-vmcontext|6000") in new stack
-- Executing [s@macro-get-vmcontext:1] Set("OOH323/(null)-f090", "VMCONTEXT=default") in new stack
-- Executing [s@macro-get-vmcontext:2] GotoIf("OOH323/(null)-f090", "0?200:300") in new stack
-- Goto (macro-get-vmcontext,s,300)
-- Executing [s@macro-get-vmcontext:300] NoOp("OOH323/(null)-f090", "") in new stack
-- Executing [s-CHANUNAVAIL@macro-vm:2] VoiceMail("OOH323/(null)-f090", "6000@default|u") in new stack
-- Playing 'vm-theperson' (language 'en')
-- Playing 'digits/6' (language 'en')
-- Playing 'digits/0' (language 'en')
-- Playing 'digits/0' (language 'en')
-- Playing 'digits/0' (language 'en')
-- Playing 'vm-isunavail' (language 'en')
-- Playing 'vm-intro' (language 'en')
Может стоит ввести для проверки
Noop(LANGUAGE)
чтобы видеть, что переменная устанавливается в ru ?
В последних версиях можно каждому экстеншн вводить свой язык.
Но если не мудрить, то общая переменная для SIP канала устанавливается в extensions_general_custom.conf
проверяется
CLI>sip show settings
elastix*CLI>
Global Settings:
----------------
SIP Port: 5060
Bindaddress: 0.0.0.0
Videosupport: No
AutoCreatePeer: No
Allow unknown access: Yes
Allow subscriptions: Yes
Allow overlap dialing: Yes
Promsic. redir: No
SIP domain support: No
Call to non-local dom.: Yes
URI user is phone no: No
Our auth realm asterisk
Realm. auth: No
Always auth rejects: No
Call limit peers only: Yes
Direct RTP setup: No
User Agent: Asterisk PBX
MWI checking interval: 10 secs
Reg. context: (not set)
Caller ID: Unknown
From: Domain:
Record SIP history: Off
Call Events: Off
IP ToS SIP: CS3
IP ToS RTP audio: EF
IP ToS RTP video: AF41
T38 fax pt UDPTL: No
RFC2833 Compensation: No
SIP realtime: Disabled
Global Signalling Settings:
---------------------------
Codecs: 0xc (ulaw|alaw)
Codec Order: ulaw:20,alaw:20
T1 minimum: 100
Relax DTMF: No
Compact SIP headers: No
RTP Keepalive: 0 (Disabled)
RTP Timeout: 0 (Disabled)
RTP Hold Timeout: 0 (Disabled)
MWI NOTIFY mime type: application/simple-message-summary
DNS SRV lookup: Yes
Pedantic SIP support: No
Reg. min duration 60 secs
Reg. max duration: 3600 secs
Reg. default duration: 120 secs
Outbound reg. timeout: 20 secs
Outbound reg. attempts: 0
Notify ringing state: Yes
Notify hold state: Yes
SIP Transfer mode: open
Max Call Bitrate: 384 kbps
Auto-Framing: No
Default Settings:
-----------------
Context: from-sip-external
Nat: RFC3581
DTMF: rfc2833
Qualify: 0
Use ClientCode: No
Progress inband: Never
Language: ru
-- Goto (macro-vm,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-vm:1] Macro("OOH323/(null)-f090", "get-vmcontext|6000") in new stack
-- Executing [s@macro-get-vmcontext:1] Set("OOH323/(null)-f090", "VMCONTEXT=default") in new stack
-- Executing [s@macro-get-vmcontext:2] GotoIf("OOH323/(null)-f090", "0?200:300") in new stack
-- Goto (macro-get-vmcontext,s,300)
-- Executing [s@macro-get-vmcontext:300] NoOp("OOH323/(null)-f090", "") in new stack
-- Executing [s-CHANUNAVAIL@macro-vm:2] VoiceMail("OOH323/(null)-f090", "6000@default|u") in new stack
-- Playing 'vm-theperson' (language 'en')
-- Playing 'digits/6' (language 'en')
-- Playing 'digits/0' (language 'en')
-- Playing 'digits/0' (language 'en')
-- Playing 'digits/0' (language 'en')
-- Playing 'vm-isunavail' (language 'en')
-- Playing 'vm-intro' (language 'en')
Не знаю, может поставить принудительно всё таки Language=ru?
| Quote: |
| Не знаю, может поставить принудительно всё таки Language=ru? |
я бы с удовольствием... но где это принудительно выставить.. в секции general ooh323.conf не работает.....
может подскажете где еще можно это выставить?
http://trixbox.org/forums/trixbox-forums ... uage-issue
Added after 10 minutes:
Вообщем все заработало как указано в примере...
по запарке забыл ребутнуть aster*
| Quote: |
| вот на туже тему......но у меня пока не вышло добиться результата http://trixbox.org/forums/trixbox-forums ... uage-issue |
Чето я не понял в этой инструкции: что значит "then create al language item e.g. 'de Group 100'"
где это создается?
How To : set different languages
1. install language files - there are two ways
old: create a language directory (eg. de) under sounds and each subfolder and put the soundfiles there
or
new:create a language directory (eg. de) under sounds and put all sound files AND the sub dirs with their sound files in there
!! this requires the line 'languageprefix = yes' in asterisk.conf (otherwise there are funny laguage changes in the prompts)
AND NO 'language=de' needed in sip.conf
2. for each target that is used by inbound routes create a language item (need to install Language Module first)
Example:
If your inbound route shall call a group 100, then create al language item e.g. 'de Group 100', specify the language e.g. 'de' and select the group 100 as target.
Now you can select that 'de Group 100' as target for the inbound route. Check Laguages (instead of previously checked Ring Groups) and select the new language item 'de Group 100'
This is similar to e.g. using time conditions.
Have fun
Gregor
1. Add Language
Description: Russia
Language Code: ru
Destination: IVR(я выбрал уже созданный IVR MainIVR_TFOP)
2. Add Incoming Route
Выбрал существующий входящий маршрут:
Route: Incoming_tfop
Set Destination
Languages:Russia (к которому мы прявязали IVR)
3 Далее Edit: asterisk.conf
[options]
languageprefix = yes
sip.conf оставил без изменения Language=ru
4.Проверил наличие файлов ru в /sounds/ru включая вложеные папки
5.reload
Added after 4 minutes:
В указанном примере Language=ru привязывается к конретному входящему маршруту...
при добавление нового маршрута процедура повторяется..
и еще мне не надо цеплять на входящий маршрут... я звоню по h323 с авайи набираю просто номер сиповского экстеншена, и при не ответе мне отвечает его почтовый ящик на англ языке, либо я на прямую набираю голосовую почту *97... - с сипа все ок - по русски, с h323 - по английски...
вот в этом контексте сделайте шаг
set language ru
это можно сделать в цепочке экстен
exten => _X,1,Set(LANGUAGE
либо сделать стартовый экстен там же
exten => s,1,Set(LANGUAGE
Пробовал... не хочет
Хотя вроди и язык пытается выставить.. не пойму....
-- AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("OOH323/(null)-6fd5", "SIP/6000|15|tTrwW") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing [s@macro-dial:8] Set("OOH323/(null)-6fd5", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:11] Set("OOH323/(null)-6fd5", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:12] Set("OOH323/(null)-6fd5", "LANGUAGE=ru") in new stack
Если переменная установлена в контексте, то при обращении в макрос она сохраняется и при возврате в точку выполнения.
Вы указали Set Language ru в макросе macro-exten-vm
| Quote: | |||
| -- Executing [s@macro-exten-vm:12] Set("OOH323/(null)-6fd5", "LANGUAGE=ru") in new stack
| |||
| так может глобально прописать?... только где? потому в каждом контексте прописывать слишком много помоему | |||
| http://asterisk.ru/knowledgebase/Asterisk+Variables Для ТриксБокса (FreePBX) - globals_custom.conf | |||
и все равно elastix*CLI> core show globals TRUNKMSD=1 TRUNK=Zap/g2 IAXINFO=guest CONSOLE=Console/dsp ASTVERSION=1.4.22 . . . . . REGDAYS=mon-fri REGTIME=7:55-17:05 IN_OVERRIDE=forcereghours AFTER_INCOMING= DIRECTORY=last RINGTIMER=15 RECORDEXTEN="" PARKNOTIFY=SIP/200 OPERATOR_XTN= OPERATOR= NULL="" INCOMING=group-all FAX_RX_FROM=freepbx@gmail.com FAX_RX_EMAIL=fax@mydomain.com FAX_RX=system FAX= DIAL_OUT=9 TRUNK_OPTIONS=tTwW DIAL_OPTIONS=tTrwW CALLFILENAME="" LANGUAGE=ru -- Executing [6666@from-internal:1] Set("OOH323/(null)-dd1e", "MEETME_ROOMNUM=6666") in new stack -- Executing [6666@from-internal:2] GotoIf("OOH323/(null)-dd1e", "0?READPIN") in new stack -- Executing [6666@from-internal:3] Answer("OOH323/(null)-dd1e", "") in new stack -- Executing [6666@from-internal:4] Wait("OOH323/(null)-dd1e", "1") in new stack -- Executing [6666@from-internal:5] Set("OOH323/(null)-dd1e", "PINCOUNT=0") in new stack -- Executing [6666@from-internal:6] Read("OOH323/(null)-dd1e", "PIN|enter-conf-pin-number||||") in new stack -- Playing 'enter-conf-pin-number' (language 'en') я в ступоре... где копать еще.. не знаю.. | |||
| Синтаксис Set(LANGUAGE()=ru) Понатыкать проверки NoOp(${LANGUAGE}) чтобы видно было состояние переменной. | |||
| [from-internal-custom] exten => 1234,1,NoOp(${LANGUAGE}) exten => 1234,2,Playback(demo-congrats) ; extensions can dial 1234 exten => 1234,3,Hangup() -- Saved useragent "X-Lite release 1100l stamp 47546" for peer 6000 -- Executing [1234@from-internal:1] NoOp("OOH323/(null)-5a37", "ru") in new stack -- Executing [1234@from-internal:2] Playback("OOH323/(null)-5a37", "demo-congrats") in new stack -- Playing 'demo-congrats' (language 'en') == Spawn extension (from-internal, 1234, 2) exited non-zero on 'OOH323/(null)-5a37' ну как так? | |||
| Неправильный тест. Файла demo-congrats нет в русских файлах. exten => 1234,1,Set(LANGUAGE()=ru) exten => 1234,2,NoOp(${LANGUAGE}) exten => 1234,3,Macro(vm(2022)) типа того что-то. | |||
| спасибо всем огромное за ответы (особенно Ded), получилось сделать так: в extensions_override_freepbx.conf добавил строку [macro-user-callerid] include => macro-user-callerid-custom exten => s,1,Noop(user-callerid: ${CALLERID(name)} ${CALLERID(number)}) exten => s,n,Set(LANGUAGE()=ru) exten => s,n,Set(AMPUSER=${IF($["foo${AMPUSER}" = "foo"]?${CALLERID(number)}:${AMPUSER})}) . . .итд и вроди все заработало... но все равно мне кажется это не очень нормальное решение.... ну да ладно... если еще где нибудь выскочит придется и там проставить эту строку.... | |||
| В файле sip.conf прописано language = ru, а так же в файле ext...conf set(language() = ru) однако голосовые файлы упорно не хотят проигрыватьcя по пути /var/lib/asterisk/sounds/ru Где искать причину? | |||
| Может быть есть общий конфигурационный файл кроме sip.conf где определяется язык голосовых приветствий?
| |||
| Не факт что поможет, но попробуйте в chan_dahdi.conf language=ru прописать в секции [channels]
| |||
поиском кто будет пользоваться? обсуждение переношу в уже существующую ветку, дабы не плодить клоны. set(language() = ru) давно не используется. используйте: Set(CHANNEL(language)=ru) _________________ Мои рекомендации: Asterisk-1.8 + G.722 кодек = лучший выбор! Успехов! | |||