AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

language ru

Asterisk GUI 27 сообщений 08.12.2008 07:17 - 15.12.2010 00:41
#1 08.12.2008 07:17

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')


Подскажите как можно это исправить?
#2 08.12.2008 13:54

Я не уверен, но в исполнении сценария
-- 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
Возможно, у вас не полная библиотека русских файлов.
Астериск, когда не находит на русском - подставляет на английском.
#3 08.12.2008 14:56

у меня тоже такая проблема только я звоню с h323 Транка.....

пробовал так как вы сказали в [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')
#4 08.12.2008 15:24

gertz, а у вас вообще русские файлы то в системе есть?
#5 08.12.2008 15:26

конечно есть... если я с сиповского екстеншна звоню на воисмэйл то все по русски....
#6 08.12.2008 15:35

В последних версиях можно каждому экстеншн вводить свой язык
Может стоит ввести для проверки
Noop(LANGUAGE)
чтобы видеть, что переменная устанавливается в ru ?
В последних версиях можно каждому экстеншн вводить свой язык.
Но если не мудрить, то общая переменная для SIP канала устанавливается в extensions_general_custom.conf
проверяется
CLI>sip show settings
#7 08.12.2008 15:38

elastix*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
#8 08.12.2008 15:55

Ну, так все эти действия совершаются в канале ООН323, а не SIP,
-- 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?
#9 09.12.2008 06:18

Quote:
Не знаю, может поставить принудительно всё таки Language=ru?

я бы с удовольствием... но где это принудительно выставить.. в секции general ooh323.conf не работает.....
может подскажете где еще можно это выставить?
#10 09.12.2008 07:26

вот на туже тему......но у меня пока не вышло добиться результата
http://trixbox.org/forums/trixbox-forums ... uage-issue

Added after 10 minutes:

Вообщем все заработало как указано в примере...
по запарке забыл ребутнуть aster*
#11 09.12.2008 07:46

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
#12 09.12.2008 08:56

рассказываю по порядку

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 привязывается к конретному входящему маршруту...
при добавление нового маршрута процедура повторяется..
#13 09.12.2008 09:53

все это я так думаю для триксбокса, но у меня эластикс..... нет такой фишки Add language.(((
и еще мне не надо цеплять на входящий маршрут... я звоню по h323 с авайи набираю просто номер сиповского экстеншена, и при не ответе мне отвечает его почтовый ящик на англ языке, либо я на прямую набираю голосовую почту *97... - с сипа все ок - по русски, с h323 - по английски...
#14 09.12.2008 10:24

gertz, в какой контекст Вы зарулили Н323 транк?
вот в этом контексте сделайте шаг
set language ru
это можно сделать в цепочке экстен
exten => _X,1,Set(LANGUAGE
либо сделать стартовый экстен там же
exten => s,1,Set(LANGUAGE
#15 09.12.2008 10:38

транк зарулил в from-internal
Пробовал... не хочет
Хотя вроди и язык пытается выставить.. не пойму....

-- 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
#16 09.12.2008 11:22

Ошибка такая: переменные наследуются в пределах одного контекста (кроме глобальных переменных)
Если переменная установлена в контексте, то при обращении в макрос она сохраняется и при возврате в точку выполнения.
Вы указали Set Language ru в макросе macro-exten-vm
Quote:
-- Executing [s@macro-exten-vm:12] Set("OOH323/(null)-6fd5", "LANGUAGE=ru") in new stack
#17 09.12.2008 11:25

так может глобально прописать?... только где?
потому в каждом контексте прописывать слишком много помоему
#18 09.12.2008 11:44

http://asterisk.ru/knowledgebase/Asterisk+Variables

Для ТриксБокса (FreePBX) - globals_custom.conf
#19 09.12.2008 13:13

Quote:
Для ТриксБокса (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')


я в ступоре...
где копать еще.. не знаю..
#20 09.12.2008 13:47

Синтаксис Set(LANGUAGE()=ru)
Понатыкать проверки NoOp(${LANGUAGE}) чтобы видно было состояние переменной.
#21 09.12.2008 14:49

[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'

ну как так? Sad
#22 09.12.2008 14:55

Неправильный тест.
Файла demo-congrats нет в русских файлах.

exten => 1234,1,Set(LANGUAGE()=ru)
exten => 1234,2,NoOp(${LANGUAGE})
exten => 1234,3,Macro(vm(2022))

типа того что-то.
#23 10.12.2008 07:07

спасибо всем огромное за ответы (особенно 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})})
.
.
.итд

и вроди все заработало... но все равно мне кажется это не очень нормальное решение.... ну да ладно...
если еще где нибудь выскочит придется и там проставить эту строку....
#24 09.12.2010 12:33

Установка языка приветствий для всех каналов, где это?


В файле sip.conf прописано language = ru, а так же в файле ext...conf set(language() = ru) однако голосовые файлы упорно не хотят проигрыватьcя по пути /var/lib/asterisk/sounds/ru
Где искать причину?
#25 10.12.2010 18:22

Может быть есть общий конфигурационный файл кроме sip.conf где определяется язык голосовых приветствий?
#26 11.12.2010 13:37

Не факт что поможет, но попробуйте в chan_dahdi.conf language=ru прописать в секции [channels]
#27 15.12.2010 00:41

pal2 wrote:
В файле sip.conf прописано language = ru, а так же в файле ext...conf set(language() = ru)

поиском кто будет пользоваться? обсуждение переношу в уже существующую ветку, дабы не плодить клоны.

set(language() = ru) давно не используется. используйте: Set(CHANNEL(language)=ru)

_________________
Мои рекомендации: Asterisk-1.8 + G.722 кодек = лучший выбор!
Успехов!