Quantcast
Channel: IP АТС Asterisk
Viewing all 1041 articles
Browse latest View live

Asterisk: confbridge.conf

$
0
0

Asterisk: confbridge.conf

[general]
; Секция общих настроек в данном конфиге
; не используется и зарезервирована для использования 
; в будущем.
Информация о профилях по умолчанию

'default_user' и 'default_bridge' секции применяются автоматически для всех Конференц-Мостов (ConfBridge) вызываемых без явного указания пользователя или моста (см. Asterisk app: ConfBridge ) Свойства меню для мостов по умолчанию отсутствуют. Если профили по умолчанию 'default_user' или 'default_bridge' удалены они будут снова добавлены при загрузке модуля.

; --- Опции профиля пользователя (ConfBridge User Profile Options) ---
[default_user]
type=user
;admin=yes     ; Дать права администратора или нет. Выкл по умолчанию.
;marked=yes    ; Sets if this is a marked user or not. Off by default.
;startmuted=yes; Sets if all users should start out muted. Off by default
;music_on_hold_when_empty=yes  ; Sets whether MOH should be played when only
                               ; one person is in the conference or when the
                               ; the user is waiting on a marked user to enter
                               ; the conference. Off by default.
;music_on_hold_class=default   ; The MOH class to use for this user.
;quiet=yes     ; When enabled enter/leave prompts and user intros are not played.
               ; There are some prompts, such as the prompt to enter a PIN number,
               ; that must be played regardless of what this option is set to.
               ; Off by default
;announce_user_count=yes  ; Sets if the number of users should be announced to the
                          ; caller.  Off by default.
;announce_user_count_all=yes ; Sets if the number of users should be announced to
                             ; all the other users in the conference when someone joins.
                             ; This option can be either set to 'yes' or a number.
                             ; When set to a number, the announcement will only occur
                             ; once the user count is above the specified number.
;announce_only_user=yes   ; Sets if the only user announcement should be played
                          ; when a channel enters a empty conference.  On by default.
;wait_marked=yes   ; Sets if the user must wait for a marked user to enter before
                   ; joining the conference. Off by default.
;end_marked=yes ; This option will kick every user with this option set in their
                ; user profile after the last Marked user exists the conference.

;dsp_drop_silence=yes  ; This option drops what Asterisk detects as silence from
                       ; entering into the bridge.  Enabling this option will drastically
                       ; improve performance and help remove the buildup of background
                       ; noise from the conference. Highly recommended for large conferences
                       ; due to its performance enhancements.

;dsp_talking_threshold=128  ; The time in milliseconds of sound above what the dsp has
                            ; established as base line silence for a user before a user
                            ; is considered to be talking.  This value affects several
                            ; operations and should not be changed unless the impact on
                            ; call quality is fully understood.
                            ;
                            ; What this value affects internally:
                            ;
                            ; 1. Audio is only mixed out of a user's incoming audio stream
                            ;    if talking is detected.  If this value is set too
                            ;    loose the user will hear themselves briefly each
                            ;    time they begin talking until the dsp has time to
                            ;    establish that they are in fact talking.
                            ; 2. When talk detection AMI events are enabled, this value
                            ;    determines when talking has begun which results in
                            ;    an AMI event to fire.  If this value is set too tight
                            ;    AMI events may be falsely triggered by variants in
                            ;    room noise.
                            ; 3. The drop_silence option depends on this value to determine
                            ;    when the user's audio should be mixed into the bridge
                            ;    after periods of silence.  If this value is too loose
                            ;    the beginning of a user's speech will get cut off as they
                            ;    transition from silence to talking.
                            ;
                            ; By default this value is 160 ms. Valid values are 1 through 2^31

;dsp_silence_threshold=2000 ; The time in milliseconds of sound falling within the what
                            ; the dsp has established as baseline silence before a user
                            ; is considered be silent.  This value affects several
                            ; operations and should not be changed unless the impact
                            ; on call quality is fully understood.
                            ;
                            ; What this value affects internally:
                            ;
                            ; 1. When talk detection AMI events are enabled, this value
                            ;    determines when the user has stopped talking after a
                            ;    period of talking.  If this value is set too low
                            ;    AMI events indicating the user has stopped talking
                            ;    may get falsely sent out when the user briefly pauses
                            ;    during mid sentence.
                            ; 2. The drop_silence option depends on this value to
                            ;    determine when the user's audio should begin to be
                            ;    dropped from the conference bridge after the user
                            ;    stops talking.  If this value is set too low the user's
                            ;    audio stream may sound choppy to the other participants.
                            ;    This is caused by the user transitioning constantly from
                            ;    silence to talking during mid sentence.
                            ;
                            ; The best way to approach this option is to set it slightly above
                            ; the maximum amount of ms of silence a user may generate during
                            ; natural speech.
                            ;
                            ; By default this value is 2500ms. Valid values are 1 through 2^31

;talk_detection_events=yes ; This option sets whether or not notifications of when a user
                           ; begins and ends talking should be sent out as events over AMI.
                           ; By default this option is off.

;denoise=yes ; Sets whether or not a denoise filter should be applied
             ; to the audio before mixing or not.  Off by default. Requires
             ; func_speex to be built and installed.  Do not confuse this option
             ; with drop_silence.  Denoise is useful if there is a lot of background
             ; noise for a user as it attempts to remove the noise while preserving
             ; the speech.  This option does NOT remove silence from being mixed into
             ; the conference and does come at the cost of a slight performance hit.

;jitterbuffer=yes  ; Enabling this option places a jitterbuffer on the user's audio stream
                   ; before audio mixing is performed.  This is highly recommended but will
                   ; add a slight delay to the audio.  This option is using the JITTERBUFFER
                   ; dialplan function's default adaptive jitterbuffer.  For a more fine tuned
                   ; jitterbuffer, disable this option and use the JITTERBUFFER dialplan function
                   ; on the user before entering the ConfBridge application.

;pin=1234  ; Sets if this user must enter a PIN number before entering
           ; the conference.  The PIN will be prompted for.
;announce_join_leave=yes ; When enabled, this option will prompt the user for a
                         ; name when entering the conference.  After the name is
                         ; recorded, it will be played as the user enters and exists
                         ; the conference. This option is off by default.
;announce_join_leave_review=yes ; When enabled, implies announce_join_leave, but the user
                                ; will be prompted to review their recording before
                                ; entering the conference. During this phase, the recording
                                ; may be listened to, re-recorded, or accepted as is. This
                                ; option is off by default.
;dtmf_passthrough=yes  ; Sets whether or not DTMF should pass through the conference.
                       ; This option is off by default.
;announcement=</path/to/file> ; Play a sound file to the user when they join the conference.

;timeout=3600 ; When set non-zero, this specifies the number of seconds that the participant
              ; may stay in the conference before being automatically ejected. When the user
              ; is ejected from the conference, the user's channel will have the CONFBRIDGE_RESULT
              ; variable set to "TIMEOUT". A value of 0 indicates that there is no timeout.
              ; Default: 0

; --- ConfBridge Bridge Profile Options ---
[default_bridge]
type=bridge
;max_members=50                ; This option limits the number of participants for a single
                               ; conference to a specific number.  By default conferences
                               ; have no participant limit. After the limit is reached, the
                               ; conference will be locked until someone leaves.  Note however
                               ; that an Admin user will always be alowed to join the conference
                               ; regardless if this limit is reached or not.

;record_conference=yes         ; Records the conference call starting when the first user
                               ; enters the room, and ending when the last user exits the room.
                               ; The default recorded filename is
                               ; 'confbridge-<name of conference bridge>-<start time>.wav
                               ; and the default format is 8khz slinear.  This file will be
                               ; located in the configured monitoring directory in asterisk.conf.

;record_file=</path/to/file>   ; When record_conference is set to yes, the specific name of the
                               ; record file can be set using this option.  Note that since multiple
                               ; conferences may use the same bridge profile, this may cause issues
                               ; depending on the configuration.  It is recommended to only use this
                               ; option dynamically with the CONFBRIDGE() dialplan function. This
                               ; allows the record name to be specified and a unique name to be chosen.
                               ; By default, the record_file is stored in Asterisk's spool/monitor directory
                               ; with a unique filename starting with the 'confbridge' prefix.

;record_file_append=yes        ; Append record file when starting/stopping on same conference recording.
;record_file_timestamp=yes     ; Append the start time to the record file name.

;record_options=               ; Pass additional options to MixMonitor.
;record_command=</path/to/command> ; Command to execute when recording finishes.

;internal_sample_rate=auto     ; Sets the internal native sample rate the
                               ; conference is mixed at.  This is set to automatically
                               ; adjust the sample rate to the best quality by default.
                               ; Other values can be anything from 8000-192000.  If a
                               ; sample rate is set that Asterisk does not support, the
                               ; closest sample rate Asterisk does support to the one requested
                               ; will be used.

;mixing_interval=40     ; Sets the internal mixing interval in milliseconds for the bridge.  This
                        ; number reflects how tight or loose the mixing will be for the conference.
                        ; In order to improve performance a larger mixing interval such as 40ms may
                        ; be chosen.  Using a larger mixing interval comes at the cost of introducing
                        ; larger amounts of delay into the bridge.  Valid values here are 10, 20, 40,
                        ; or 80.  By default 20ms is used.

;video_mode = follow_talker; Sets how confbridge handles video distribution to the conference participants.
                           ; Note that participants wanting to view and be the source of a video feed
                           ; _MUST_ be sharing the same video codec.  Also, using video in conjunction with
                           ; with the jitterbuffer currently results in the audio being slightly out of sync
                           ; with the video.  This is a result of the jitterbuffer only working on the audio
                           ; stream.  It is recommended to disable the jitterbuffer when video is used.
                           ;
                           ; --- MODES ---
                           ; none: No video sources are set by default in the conference. It is still
                           ;       possible for a user to be set as a video source via AMI or DTMF action
                           ;       at any time.
                           ;
                           ; follow_talker: The video feed will follow whoever is talking and providing video.
                           ;
                           ; last_marked: The last marked user to join the conference with video capabilities
                           ;              will be the single source of video distributed to all participants.
                           ;              If multiple marked users are capable of video, the last one to join
                           ;              is always the source, when that user leaves it goes to the one who
                           ;              joined before them.
                           ;
                           ; first_marked: The first marked user to join the conference with video capabilities
                           ;               is the single source of video distribution among all participants. If
                           ;               that user leaves, the marked user to join after them becomes the source.

;language=en               ; Set the language used for announcements to the conference.
                           ; Default is en (English).

;regcontext=conferences    ; The name of the context into which to register conference names as extensions.

; All sounds in the conference are customizable using the bridge profile options below.
; Simply state the option followed by the filename or full path of the filename after
; the option.  Example: sound_had_joined=conf-hasjoin  This will play the conf-hasjoin
; sound file found in the sounds directory when announcing someone's name is joining the
; conference.

;sound_join  ; The sound played to everyone when someone enters the conference.
;sound_leave ; The sound played to everyone when someone leaves the conference.
;sound_has_joined ; The sound played before announcing someone's name has
                  ; joined the conference. This is used for user intros.
                  ; Example "_____ has joined the conference"
;sound_has_left ; The sound played when announcing someone's name has
                ; left the conference. This is used for user intros.
                ; Example "_____ has left the conference"
;sound_kicked ; The sound played to a user who has been kicked from the conference.
;sound_muted  ; The sound played when the mute option it toggled on.
;sound_unmuted  ; The sound played when the mute option it toggled off.
;sound_only_person ; The sound played when the user is the only person in the conference.
;sound_only_one ; The sound played to a user when there is only one other
                ; person is in the conference.
;sound_there_are  ; The sound played when announcing how many users there
                  ; are in a conference.
;sound_other_in_party; ; This file is used in conjunction with 'sound_there_are"
                       ; when announcing how many users there are in the conference.
                       ; The sounds are stringed together like this.
                       ; "sound_there_are" <number of participants> "sound_other_in_party"
;sound_place_into_conference ; The sound played when someone is placed into the conference
                             ; after waiting for a marked user. This sound is now deprecated
                             ; since it was only ever used improperly and correcting that bug
                             ; made it completely unused.
;sound_wait_for_leader  ; The sound played when a user is placed into a conference that
                        ; can not start until a marked user enters.
;sound_leader_has_left  ; The sound played when the last marked user leaves the conference.
;sound_get_pin ; The sound played when prompting for a conference pin number.
;sound_invalid_pin ; The sound played when an invalid pin is entered too many times.
;sound_locked ; The sound played to a user trying to join a locked conference.
;sound_locked_now ; The sound played to an admin after toggling the conference to locked mode.
;sound_unlocked_now; The sound played to an admin after toggling the conference to unlocked mode.
;sound_error_menu ; The sound played when an invalid menu option is entered.
;sound_begin ; The sound played to the conference when the first marked user enters the conference.

; --- ConfBridge Menu Options ---
; The ConfBridge application also has the ability to
; apply custom DTMF menus to each channel using the
; application.  Like the User and Bridge profiles
; a menu is passed in to ConfBridge as an argument in
; the dialplan.
;
; Below is a list of menu actions that can be assigned
; to a DTMF sequence.
;
; To have the first DTMF digit in a sequence be the '#' character, you need to
; escape it.  If it is not escaped then normal config file processing will
; think it is a directive like #include.  For example:
; \#1=toggle_mute                      ; Pressing #1 will toggle the mute setting.
;
; A single DTMF sequence can have multiple actions associated with it. This is
; accomplished by stringing the actions together and using a ',' as the delimiter.
; Example:  Both listening and talking volume is reset when '5' is pressed.
; 5=reset_talking_volume, reset_listening_volume
;
; playback(<name of audio file>&<name of audio file>)
                                       ; Playback will play back an audio file to a channel
                                       ; and then immediately return to the conference.
                                       ; This file can not be interupted by DTMF.
                                       ; Mutliple files can be chained together using the
                                       ; '&' character.
; playback_and_continue(<name of playback prompt>&<name of playback prompt>)
                                       ; playback_and_continue will
                                       ; play back a prompt while continuing to
                                       ; collect the dtmf sequence.  This is useful
                                       ; when using a menu prompt that describes all
                                       ; the menu options.  Note however that any DTMF
                                       ; during this action will terminate the prompts
                                       ; playback.  Prompt files can be chained together
                                       ; using the '&' character as a delimiter.
; toggle_mute      ; Toggle turning on and off mute.  Mute will make the user silent
                   ; to everyone else, but the user will still be able to listen in.

; no_op ; This action does nothing (No Operation). Its only real purpose exists for
        ; being able to reserve a sequence in the config as a menu exit sequence.
; decrease_listening_volume ; Decreases the channel's listening volume.
; increase_listening_volume ; Increases the channel's listening volume.
; reset_listening_volume    ; Reset channel's listening volume to default level.

; decrease_talking_volume ; Decreases the channel's talking volume.
; increase_talking_volume ; Icreases the channel's talking volume.
; reset_talking_volume    ; Reset channel's talking volume to default level.
;
; dialplan_exec(context,exten,priority)  ; The dialplan_exec action allows a user
                                         ; to escape from the conference and execute
                                         ; commands in the dialplan.  Once the dialplan
                                         ; exits the user will be put back into the
                                         ; conference.  The possibilities are endless!
; leave_conference ; This action allows a user to exit the conference and continue
                   ; execution in the dialplan.
;
; admin_kick_last  ; This action allows an Admin to kick the last participant from the
                   ; conference. This action will only work for admins which allows
                   ; a single menu to be used for both users and admins.
;
; admin_toggle_conference_lock ; This action allows an Admin to toggle locking and
                               ; unlocking the conference.  Non admins can not use
                               ; this action even if it is in their menu.

; set_as_single_video_src   ; This action allows any user to set themselves as the
                            ; single video source distributed to all participants.
                            ; This will make the video feed stick to them regardless
                            ; of what the video_mode is set to.

; release_as_single_video_src ; This action allows a user to release themselves as
                              ; the video source.  If video_mode is not set to "none"
                              ; this action will result in the conference returning to
                              ; whatever video mode the bridge profile is using.
                              ;
                              ; Note that this action will have no effect if the user
                              ; is not currently the video source.  Also, the user is
                              ; not guaranteed by using this action that they will not
                              ; become the video source again.  The bridge will return
                              ; to whatever operation the video_mode option is set to
                              ; upon release of the video src.

; admin_toggle_mute_participants ; This action allows an administrator to toggle the mute
                                 ; state for all non-admins within a conference.
                                 ; Subsequent non-admins joining a muted conference will
                                 ; start muted.  All admin users are unaffected by this
                                 ; option.  Note that all users, regardless of their admin
                                 ; status, are notified that the conference is muted when
                                 ; the state is toggled.

; participant_count        ; This action plays back the number of participants currently
                           ; in a conference

[sample_user_menu]
type=menu
*=playback_and_continue(conf-usermenu)
*1=toggle_mute
1=toggle_mute
*4=decrease_listening_volume
4=decrease_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=leave_conference
8=leave_conference
*9=increase_talking_volume
9=increase_talking_volume

[sample_admin_menu]
type=menu
*=playback_and_continue(conf-adminmenu)
*1=toggle_mute
1=toggle_mute
*2=admin_toggle_conference_lock ; only applied to admin users
2=admin_toggle_conference_lock  ; only applied to admin users
*3=admin_kick_last       ; only applied to admin users
3=admin_kick_last        ; only applied to admin users
*4=decrease_listening_volume
4=decrease_listening_volume
*6=increase_listening_volume
6=increase_listening_volume
*7=decrease_talking_volume
7=decrease_talking_volume
*8=no_op
8=no_op
*9=increase_talking_volume
9=increase_talking_volume

Файлы конфигурации Asterisk

Asterisk app: ConfBridge


Asterisk app: ConfBridge

$
0
0

Asterisk app: ConfBridge

Команда диалплана Asterisk - ConfBridge, вызывает заданную или создает новую (по умолчанию) телеконференцию.

Описание

Осуществить вход в указанный конференц-мост (или мост по умолчанию, если аргументы не заданы) Также пользователь может выполнить действия из меню, при помощи DTMFкодов, например, покинуть конференцию.

синтаксис

ConfBridge(conference[,bridge_profile[,user_profile[,menu]]])

Аргументы
  • conference - Имя конференции. Любое численное или буквенное значение.
  • bridge_profile - имя профиля конференции заданное в файле /etc/asterisk/conbridge.conf

Если профиль не указан явно, используется динамический профиль созданный функцией диалплана CONFBRIDGE Если же и динамический профиль не задан, используется профиль по умолчанию 'default_bridge' из того же файла.

Если профили пользователей могут смешиваться как угодно, то вызывать одну и ту же конференцию с разными профилями конференций, настоятельно не рекомендуется .

  • user_profile - профиль пользователя назначенный в conbridge.conf.

Если профиль не указан явно, используется динамический профиль созданный функцией диалплана CONFBRIDGE Если же и динамический профиль не задан, используется профиль по умолчанию 'default_user' из conbridge.conf.

  • menu - название меню из конфига /etc/asterisk/conbridge.conf. Если меню не задано, то никакого меню по умолчанию нет.

cм. также

Команды диалплана Asterisk

Trunks

$
0
0

Trunks

Транки используются для выполнения внешних вызовов и получения входящих вызовов от других PBX.

Поддерживаются транки следующих типов:

  • SIP - sip драйвер chan_sip
  • PJSIP - sip драйвер res_pjsip
  • DAHDI
  • IAX2
  • ENUM.
  • DUNDI
  • Custom

Все транки настраиваются в основном одинаково.

General Settings

Outbound Caller ID

Установка этой опции перекроет любое значение абонентского идентификатора вызовов, при вызове по этому транку.

Формат:

"имя"  <номер> 

Оставьте это поле пустым чтобы, просто передать идентификатор абонента. Кавычки вокруг имени не обязательны, но рекомендуются.

Never Override CallerID FreePBX 2.5.x.x или Block Foreign CallerIDs FreePBX 2.6.x.x

В некоторых случаях провайдеры запрещают вызовы содержащие некорректный идентификатор вызывающего абонента. Выберите этот параметр, чтобы не пропускать вызовы с некорректными CallerID. Поле Outbound Caller IDдолжно быть заполнено.

Maximum channels

Ограничивает максимальное количество одновременных входящих и исходящих вызовов. Оставьте пустым, чтобы не ограничивать.

Dial Rules

Правили набора - простой в использовании, но очень мощный, инструмент управления набираемыми номерами. Используются правила, в основном, для добавления или удаления префиксов. Отметим, что шаблон без + или | (добавить или удалить префикс) бесполезен.

Правила

  • X - любая цифра от 0-9
  • Z - любая цифра от 1-9
  • N - любая цифра от 2-9
  • [1237-9] -любая цифра или буква в скобках (в примере 1,2,3,7,8,9)
  • . - wildcard, один или более знак (не используется перед | или +)
  • | - удаляет префикс (9|3216111 - будет набрано 3216111)
  • + - добавляет префикс к номеру (например шаблон 812+NXXXXXX при наборе 3216111, наберет 8123216111)

IAX2 и SIPтранки

Register string

<SIP_ID>:<PASSWORD>@exsample.com
Пример настройки SIP транка для SIPNET.RU
Соединение двух FreePBX

ENUM Trunks

«ENUMне является обязательным для VoIP, но совершенствует его». Wikipedia

e164.org позволяет зарегистрировать номер ТФОП в VoIPпространстве, без регистрации в официальном каталоге номеров.

Пример Dial Rules для E164 транка:

    Australia (07 Area Code)
        617+NXXXXXX
        61+0|NXXXXXXXX
        0011|.
    North America (613 area code)
        1613+NXXXXXX
        1+NXXNXXXXXX
        011|.

DAHDI

Определяются наличием оборудования установленного на вашем севере. Для настройки DAHDIиспользуются конфигурационные файлы /etc/dahdi/system.conf и /etc/asterisk/chan_dahdi.conf

Custom Trunks

Если вы используете H323, Chan_capi или любые другие нестандартные транки. Пример настроек строки набора(Custom Dial String)/

  • CAPI/XXXXXXXX/$OUTNUM$/b
  • H323/$OUTNUM$@XX.XX.XX.XX
  • OOH323/$OUTNUM$@XX.XX.XX.XX:XXXX
  • vpb/1-1/$OUTNUM$:

Скриншот

Asterisk app: Authenticate

$
0
0

Asterisk app: Authenticate

Приложение диалплана Asterisk: аутентификация пользователя.

Описание

Данное приложение требует от вызывающего абонента ввести пароль для продолжения выполнения диалплана.

Если пароль начинается со слэш '/', то символы интерпретируются как имя файла, который содержит пароль.
В файле может содержаться множество паролей, по одному в каждой новой строке.
При использовании ключа базы данных, значение соотнесенное с ключом может быть произвольным, оно не используется.
У пользователя есть три попытки ввода, прежде чем соединение будет разорвано.

Синтаксис

Authenticate(password[,options[,maxdigits[,prompt]]])

Аргументы
  • password - пароль известный пользователю.
параметры
  • a: Установить Account Code, как введенный пароль.
  • d: Определяет указанный путь, как ключ БД. Если family/keyзаданы в БД, как /pin/4888,

то в диалплане назначается /pin, в качестве пароля будет использован ключ - 4888, значение же пары family/key (в примере 1234) не важно:

exten => _7777,1,Answer()
exten => _7777,n,Authenticate(/pin,d,4,conf-getpin)

*CLI> database show pin
/pin/4888                                         : 1234
1 results found.

все это немного странно 8-o

Рассмотрим другой способ получения кода авторизации из внутренней БД Asterisk,
без использования опции d, привязанный к callerid вызывающего абонента.
Предположим в БД назначен <family/key> :<value> - pin/2666 :1234

*CLI> database show pin 2666
/pin/2666                                         : 1234
где 2666 номер абонента.
exten => s,1,Answer()
   same => n,Authenticate(${DB(pin/${CALLERID(num)})},,4,conf-getpin)
   same => n,playback(welcome)
функция ${DB(pin/${CALLERID(num)})}выдаст нам <value> для пары <pin/2666> в качестве кода авторизации:
Authenticate("PJSIP/fs_pjsip-000000de", "1234,,4,conf-getpin")

-- Executing [s@from-fs-pjsip:1] Goto("PJSIP/fs_pjsip-000000de", "from-test-2,s,1") in new stack
    -- Goto (from-test-2,4888,1)
    -- Executing [s@from-test-2:1] Answer("PJSIP/fs_pjsip-000000de", "") in new stack
    -- Executing [s@from-test-2:2] Authenticate("PJSIP/fs_pjsip-000000de", "1234,,4,conf-getpin") in new stack
    -- <PJSIP/fs_pjsip-000000de> Playing 'conf-getpin.gsm' (language 'en')
    -- <PJSIP/fs_pjsip-000000de> Playing 'auth-thankyou.gsm' (language 'en')
    -- Executing [s@from-test-2:3] Playback("PJSIP/fs_pjsip-000000de", "welcome") in new stack
    -- <PJSIP/fs_pjsip-000000de> Playing 'welcome.gsm' (language 'en')
    -- Auto fallthrough, channel 'PJSIP/fs_pjsip-000000de' status is 'UNKNOWN'
  • m: представляет указанный путь, как файл, содержащий список аккаунтов и хэш паролей, разделенные двоеточием ':'.

/var/spool/asterisk/pass (hash 1234 и 4321 соответственно)

   4888:81dc9bdb52d04dc20036dbd8313ed055
    :d93591bdf7860e1e4ee2fca799911215
exten => _7777,1,Answer()
exten => _7777,n,Authenticate(/var/spool/asterisk/pass,am,4,conf-getpin)
  • r: Удалить ключ БД. после успешного ввода (работает только с опцией 'd')
  • maxdigits: максимально допустимое количество знаков в пароле. Система перестает читать ввод данных после достижения порога.

В этом случае не требуется ввод решетки '#' в конце. По умолчанию '0' - без ограничений, система ожидает ввода решетки '#' в конце.

  • prompt: файл голосового сообщения.

exten => _1,1,Authenticate(1234,,4,conf-getpin)
exten => _1,n,Set(CDR(userfield)=conference776/${CALLERID(num)})
exten => _1,n,ConfBridge(776)

см. также

Asterisk app: BackGround

Asterisk application: Dial

Asterisk app: Read

Asterisk app: SendDTMF

Asterisk app: WaitExten

Команды диалплана Asterisk

FreeSWITCH CDR MySQL

$
0
0

FreeSWITCH CDR MySQL

Просмотр данных CDR FreeSWITCH при помощи веб интерфейса CDR-Viewer БД MySQL

Подготовим FreeSWITCH для работы с MySQL через ODBC

Предполагается, что сервер mysql ( mariadb) установлен.

 yum install -y mysql-connector-odbc unixODBC unixODBC-devel

Проверим odbcinst.ini

# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description     = ODBC for MySQL
Driver          = /usr/lib/libmyodbc5.so
Setup           = /usr/lib/libodbcmyS.so
Driver64        = /usr/lib64/libmyodbc5.so
Setup64         = /usr/lib64/libodbcmyS.so
FileUsage       = 1

Заполним odbc.ini

[freeswitch]
Driver=MySQL
SERVER=localhost
PORT=3306
DATABASE=freeswitchcdr
USER=DB_USER
PASSWORD=DB_PASSWORD
Проверим подключение к MySQL

Создадим БД MySQL в формате Asterisk CDR

Создайте файл, например:

 touch freeswitchcdr.sql

И скопируйте в него структуру таблицы БД:

CREATE TABLE cdr (
   calldate datetime NOT NULL default '0000-00-00 00:00:00',
   clid varchar(80) NOT NULL default '',
   src varchar(80) NOT NULL default '',
   dst varchar(80) NOT NULL default '',
   dcontext varchar(80) NOT NULL default '',
   channel varchar(80) NOT NULL default '',
   dstchannel varchar(80) NOT NULL default '',
   lastapp varchar(80) NOT NULL default '',
   lastdata varchar(80) NOT NULL default '',
   duration int(11) NOT NULL default '0',
   billsec int(11) NOT NULL default '0',
   disposition varchar(45) NOT NULL default '',
   amaflags int(11) NOT NULL default '0',
   accountcode varchar(20) NOT NULL default '',
   uniqueid varchar(32) NOT NULL default '',
   userfield varchar(255) NOT NULL default '',
   did varchar(50) NOT NULL default '',
   recordingfile varchar(255) NOT NULL default '',
   KEY `calldate` (`calldate`),
   KEY `dst` (`dst`),
   KEY `accountcode` (`accountcode`),
   KEY `uniqueid` (`uniqueid`)
);
Создаем БД:freeswitchcdr
 mysqladmin create freeswitchcdr
Создаем таблицу:cdr
 mysql asteriskcdrdb < freeswitchcdr.sql
Задаем права на БД с параметрами определенными в odbc.ini

 mysql> GRANT ALL PRIVILEGES ON freeswitchcdr.* TO DB_USER@localhost  IDENTIFIED BY 'DB_PASSWORD';
 flush privileges;
 \q

Подготовим FreeSWITCH

Расскомментируйте строку event_handlers/mod_odbc_cdrв файле исходников FS ../freeswitch/modules.conf

и выполните make && make install.

По окончании компиляции скопируйте файл odbc_cdr.conf.xml из исходников в директорию, где установлен FS.

В моем примере это /usr/local/src/freeswitchи /usr/local/freeswitchсоответственно

cp /usr/local/src/freeswitch/src/mod/event_handlers/mod_odbc_cdr/conf/autoload_configs/odbc_cdr.conf.xml /usr/local/freeswitch/conf/autoload_configs/odbc_cdr.conf.xml

И заполните файл следующим содержанием, где параметры БД (odbc-dsn), данные определенные нами в odbc.ini:

<configuration name="odbc_cdr.conf" description="ODBC CDR Configuration"><settings><!-- <param name="odbc-dsn" value="freeswitchcdr:DB_USER:DB_PASSWORD"/> --><param name="odbc-dsn" value="odbc://freeswitch"/><!-- global value can be "a-leg", "b-leg", "both" (default is "both") --><param name="log-leg" value="both"/><!-- value can be "always", "never", "on-db-fail" --><param name="write-csv" value="on-db-fail"/><!-- location to store csv copy of CDR --><param name="csv-path" value="/usr/local/freeswitch/log/odbc_cdr"/><!-- if "csv-path-on-fail" is set, failed INSERTs will be placed here as CSV files otherwise they will be placed in "csv-path" --><param name="csv-path-on-fail" value="/usr/local/freeswitch/log/odbc_cdr/failed"/><!-- dump SQL statement after leg ends --><param name="debug-sql" value="true"/></settings><tables><!-- only a-legs will be inserted into this table --><table name="cdr" log-leg="a-leg"><field name="calldate" chan-var-name="start_stamp"/><field name="clid" chan-var-name="caller_id_name"/><field name="src" chan-var-name="caller_id_number"/><field name="dst" chan-var-name="destination_number"/><field name="dcontext" chan-var-name=""/><field name="channel" chan-var-name="channel_name"/><field name="dstchannel" chan-var-name="bridge_channel"/><field name="lastapp" chan-var-name="hangup_cause"/><field name="lastdata" chan-var-name="sip_hangup_disposition"/><field name="duration" chan-var-name="duration"/><field name="billsec" chan-var-name="billsec"/><field name="disposition" chan-var-name="hangup_cause"/><field name="lastapp" chan-var-name="current_application"/><field name="amaflags" chan-var-name="amaflags"/><field name="uniqueid" chan-var-name="uuid"/><field name="recordingfile" chan-var-name="recordingfile"/><field name="userfield" chan-var-name=""/></table></tables></configuration>
Загрузим модуль mod_odbc_cdr
 fs_cli
 load mod_odbc_cdr

Если в дальнейшем вы будете вносить изменения в файл odbc_cdr.conf.xmlих можно применить командой:

 reload mod_odbc_cdr
Spoiler

Подготовим Asterisk CDR Viewer

 cd /var/www/html
 git clone https://github.com/g613/asterisk-cdr-viewer.git
 cd asterisk-cdr-viewer/include

Отредактируем файл config.inc.php

$db_type = 'mysql';
$db_host = 'localhost';
$db_port = '3306';
$db_user = 'DB_USER';
$db_pass = 'DB_PASSWORD';
$db_name = 'freeswitchcdrdb';
$db_table_name = 'cdr';
$db_options = array();

Если все сделано правильно в Asterisk-CDR-Viewer будут отображаться свежие данные о вызовах:

Для того, чтобы работала сортировка по статусу вызова надо отредактировать файл ../asterisk-cdr-viewer/templates/form.tpl.phpзаменив секцию:

<td nowrap=""nowrap><input <?php if ( isset($_REQUEST['disposition_neg'] ) && $_REQUEST['disposition_neg'] == 'true' ) { echo 'checked="checked"'; } ?> type="checkbox" name="disposition_neg" value="true" /> not<select name="disposition" id="disposition"><option <?php if (empty($_REQUEST['disposition']) || $_REQUEST['disposition'] == 'all') { echo 'selected="selected"'; } ?> value="all">All Dispositions</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'ANSWERED') { echo 'selected="selected"'; } ?> value="ANSWERED">Answered</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'BUSY') { echo 'selected="selected"'; } ?> value="BUSY">Busy</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'FAILED') { echo 'selected="selected"'; } ?> value="FAILED">Failed</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'NO ANSWER') { echo 'selected="selected"'; } ?> value="NO ANSWER">No Answer</option></select></td>

на следующий код:

<td nowrap=""nowrap><input <?php if ( isset($_REQUEST['disposition_neg'] ) && $_REQUEST['disposition_neg'] == 'true' ) { echo 'checked="checked"'; } ?> type="checkbox" name="disposition_neg" value="true" /> not<select name="disposition" id="disposition"><option <?php if (empty($_REQUEST['disposition']) || $_REQUEST['disposition'] == 'all') { echo 'selected="selected"'; } ?> value="all">All Dispositions</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'NORMAL_CLEARING') { echo 'selected="selected"'; } ?> value="NORMAL_CLEARING">Answer</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'USER_BUSY') { echo 'selected="selected"'; } ?> value="USER_BUSY">Busy</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'UNALLOCATED_NUMBER') { echo 'selected="selected"'; } ?> value="UNALLOCATED_NUMBER">No Number</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'NO_ROUTE_DESTINATION') { echo 'selected="selected"'; } ?> value="NO_ROUTE_DESTINATION">No Route</option><option <?php if (isset($_REQUEST['disposition']) && $_REQUEST['disposition'] == 'ORIGINATOR_CANCEL') { echo 'selected="selected"'; } ?> value="ORIGINATOR_CANCEL">No Answer</option></select></td>

FreeSWITCH

Настройка DAHDI - chan_dahdi

$
0
0

Настройка DAHDI - chan_dahdi

Драйвер DAHDIотвечает за работу интерфейсных плат телефонии устанавливаемых непосредственно в сервер или работающих по TDM over IP, от Digium и других производителей(Openvox, Sangoma, Parabel, Cronyx и др.).

DAHDI Linux и DAHDI Tools

Dahdi linux драйвер с открытым исходным кодом, для взаимодействия Asterisk с телефонным оборудованием.
Dahdi Tools набор утилит для управления и мониторинга DAHDIустройств.

Скачать DAHDI

настройка E1 - /etc/dahdi/system.conf

span => <Number>,<Timing>,<Line BuildOut>,<Framing>,<Coding>[,Yellow]

Драйвер DAHDIработает с синхронным оборудованием, т.е. каждая следующая порция данных в следующий такт должна быть доступна. Если Периферийных устройств несколько - они должны работать синхронно, по одним часам.

В синхронной сети должно выполняться одно простое правило - master должен быть соединен с slave. Если это правило нарушается - будут потерянные(skip) или повторенные (slip) кадры.

Предположим, вы получаете от АТС поток E1, т.е. АТС - master, заводите его в Asterisk/DAHDI, и у вас есть внутренний коммутатор. В такой схеме вы должны настроить порт 1 платы потока как slave {span = 1,1,0,ccs,hdb3,crc4} , он смотрит на АТС. Порт 2 настроить как master {span = 2,0,0,ccs,hdb3,crc4}, порт 2 будет получать синхронизацию от порта 1, т.к. это одно устройство. Внутренний коммутатор должен быть в режиме slave. DAHDIбудет работать с устройствами по часам АТС

Timing:
This determines how timing is handled by the card.
*  0 - Порт является источником синхронизации
*  1 - Получает синхронизацию с удаленной станции
*  2 - Receives secondary backup timing from remote end
*  3 - Receives tertiary backup timing from remote end
*  4 - Receives quaternary backup timing from remote en 
span = 1,1,0,ccs,hdb3,crc4 
bchan = 1-15,17-31
dchan = 16

span = 2,0,0,ccs,hdb3,crc4
bchan = 32-46,48-62
dchan = 47

При разговоре слышно легкое пощелкивание, факсы не идут или проходят с ошибками. У вас неправильно настроена синхронизация. Настройте синхронизацию как описано выше.

ISDN PRI - /etc/asterisk/chan_dahdi.conf

chan_dahdi.conf - определяет параметры каналов TDMинтерфейса DAHDI. Каналы должны быть определены в этом файле, чтобы Asterisk мог их использовать.
chan_dahdi.conf состоит из секций, а секции в свою очередь из ключевых слов и их значений. Значения могут быть булевы (да/нет), или содержать специфичные для данного ключевого слова значения. Секции используют формат наследования свойств объекта.

context - привязывает канал к контексту в плане набора (диалплане), тем самым определяя действия при инициации вызова. :

context => default

channel - назначает канал или несколько каналов, Каналы могут быть определены индивидуально, через запятую, или диапазоном через дефис.

channel => 16
channel => 2,3
channel => 1-15, 17-31

group - назначает каналы в группу. Для исходящей связи будет выбираться первый свободный канал. Для назначения в несколько групп, перечислите значения через запятую. Чтобы не назначать в группу - оставьте значение пустым.

group = 1
group = 2,3
group =

switchtype - устанавливает тип сигнализации для PRI.

  • national: National ISDN type2 (Американский)
  • ni1: National ISDN type 1
  • dms100: Nortel DMS100
  • 4ess: AT&T 4ESS
  • 5ess: Lucent 5ESS
  • euroisdn: EuroISDN
  • qsig: Протокол с минимальной функциональностью, используемый для построения «сети» между двумя или более АТС от различных производителей.

switchtype => euroisdn

signalling - Параметр устанавливает тип соединения и/или сигнализации. Эти параметры должны соответствовать тому, что описано в конфигурации драйвера DAHDI (/etc/dahdi/system.conf). Значение этого параметра частично зависит от типа используемой Вами интерфейсной карты. Сервер Asterisk не запустится: если определение типа соединения для канала неправильное или нерабочее, если значение не совпадает с тем, что описано в конфигурации Zaptel драйвера или, если устройство не установлено или сконфигурировано не должным образом. Во многих случаях, правильное значение этого параметра - это одно из этих четырех значений: fxs_ks, fxo_ks, pri_cpe or pri_net. Этот параметр не имеет значения по умолчанию, Вы обязательно должны определить его значения перед описанием какого-либо канала. Полный список типов соединений и сигнализаций

  • fxo_ks: Используется для сигнализации FXS устройств.
  • fxs_ks: Противоположная сторона fxo_ks. Для сигнализации FXO устройств
  • pri_cpe: Сигнализация PRI. Клиентская сторона оборудования (user)
  • pri_net: Сигнализация PRI, network side.

:!:Аналоговые интерфейсы могут стать источником путаницы в Asterisk.
Для FXS интерфейсов используется fxo_ks.
Для FXO - fxs_ks.

signalling => fxs_ks

priindication: Этот параметр устанавливает то, как сервер Asterisk должен сигнализировать состояние Busy() и Congestion() для удаленного коммутатора или пользователя. По умолчанию: inband. Доступные значения следующие:

  • inband: Сервер Asterisk будет сам проигрывать тональные сигналы без перевода канала в отвеченное состояние; Не доступно для всех соединений PRI/BRI.
  • outofband: Сервер Asterisk будет разрывать связь с информационным кодом busy/congestion, при этом уже сам телефонный коммутатор будет проигрывать тональные сигналы пользователю. Busy(), в этом случае, это то же самое, что установка: PRI_CAUSE=17 и выполнение команды: Hangup().

pridialplan - устанавливает тип плана набора для ISDN PRI. Игнорируется в большинстве случаев. Может понадобиться для корректной работы CallerID Доступные значения: unknown, local, private, national, international.

pridialplan => national
overlapdial: если - «yes», то набранные цифры будут сразу отправляться в поток. По умолчанию: no. (enblock)
overlapdial => yes

Состояние аналоговых вызовов

В этой секции описываются директивы сигнализирующие о состоянии вызовов аналоговых интерфейсов.

busydetect - детектирование сигнала занято для FXS, FXO или T1 (E&M, Wink, Feature Group D). Значение 'yes' или 'no'.

callprogress - контроллировать состояние вызова (КПВ, занято или подняли трубку). Значение 'yes' или 'no'.

busydetect => yes
callprogress => yes

Функции CallerID

usecallerid - разрешить или запретить передачу CallerID (yes/no) По умолчанию 'yes'.

hidecallerid - скрывать исходящий CallerID. По умолчанию 'no'.

calleridcallwaiting - получать CallerID во время вызова.

usecallerid => yes
hidecallerid => no
callerid - устанавливает CallerID для данного канала. Принимает данные правильного формата «имя» и <номер>. Возможное значение 'asreceived' для передачи полученных значений.
callerid => "Oleg" <8123216111>
callerid =>
callerid => asreceived

Call feature options

Эти параметры включают или отключают дополнительные опции для FXS (FXO) каналов, такие как конференция и пере-адресация и т.д.. Значения могут быть только (yes/no)

threewaycalling - разрешает или запрещает three-way calling для канала.

cancallforward - разрешает или запрещает функцию «следуй за мной».

transfer - разрешает или запрещает функцию флэш для канала (для включения threewaycallingдолжно быть 'yes')

immediate - Если этот режим установлен 'yes', входящий вызов немедленно направляется на расширение 's' без тона набора и чтения цифр.

ADSI - Включает или выключает поддержку ADSI. ADSI спецификации системы, аналогичной Caller ID для передачи закодированной информация для аналоговых телефонов. Это позволяет создавать интерактивные меню и обеспечивает доступ к таким услугам, как голосовая почта, посредством текстового интерфейса.

threewaycalling = yes
transfer = yes
immediate = no
adsi = yes
cancallforward = yes

Параметры качества аудио

echocancelвключить эхо-подавление. По умолчанию всегда включен.

echocancelwhenbridgedВключение или выключает эхо-подавление в режиме моста между TDMинтерфейсами.В принципе в этом режиме не требуется эхо-подавления, но иногда это позволяет улучшить качество связи. Значение (yes / no).

rxgain - регулировка усиления приемника.
txgain - регулировка усиления передатчика.

echocancel = yes
echocancelwhenbridged = no
rxgain = 20%

Call Logging Options

Эти параметры влияют на записи Call Detail Records Asterisk.
amaflags: Устанавливает AMA флаги, влияющие на классификацию записей в Call Detail Records. Принимает следующие значения:

billing: маркирует для биллинга
documentation: маркирует для документирования.
omit: не записывать информацию о звонке.
default: по умолчанию.
accountcode: Устанавливает код счета за звонки. Код в счете может иметь любое буквенное или цифровое значение.
accountcode = oleg145
amaflags = billing

Asterisk -vvvvvv команды CLI для тестирования DAHDI

dahdi show status

localhost*CLI> dahdi show status
Description                              Alarms  IRQ    bpviol CRC    Fra Codi Options  LBO
Wildcard TE121 Card 0                    OK      2      -1     -1     CCS HDB3          0 db (CSU)/0-133 feet (DSX-1)
Команда dahdi show status отобразит состояние установленных плат.
dahdi show channels

Команда dahdi show channels выведет список сконфигурированных каналов «channel ⇒ 1-15,17-31».

pri show spans

localhost*CLI> pri show spans
PRI span 1/0: Up, Active
Команда pri show spans выводит информацию о ISDN PRI ( в частности статус layer2 - Up или Down)

Linux команды для тестирования DAHDI

ls

[root@localhost ~]# ls /dev/dahdi/
1   11  13  15  17  19  20  22  24  26  28  3   31  5  7  9        ctl     timer
10  12  14  16  18  2   21  23  25  27  29  30  4   6  8  channel  pseudo  transcode
lspci
 [root@localhost ~]# lspci | grep Digium
 02:08.0 Ethernet controller: Digium, Inc. Wildcard TE121 single-span T1/E1/J1 card (PCI-Express) (rev 11)
[root@localhost ~]# lspci | grep Ethernet
02:08.0 Ethernet controller: Digium, Inc. Wildcard TE121 single-span T1/E1/J1 card (PCI-Express) (rev 11)
dmesg

на примере Digium te120b

[root@localhost ~]# dmesg | grep wcte12xp
wcte12xp 0000:02:08.0: Setting up global serial parameters for E1
wcte12xp 0000:02:08.0: Found a Wildcard TE121
wcte12xp 0000:02:08.0: Booting VPMADT032
wcte12xp 0000:02:08.0: VPM present and operational (Firmware version 125)
wcte12xp 0000:02:08.0: Span configured for CCS/HDB3
cat /proc/dahdi/span_number

[root@localhost ~]# cat /proc/dahdi/1
Span 1: WCT1/0 "Wildcard TE121 Card 0" (MASTER) HDB3/CCS
        BPV count: -1
        CRC4 error count: -1
        E-bit error count: -1
        FAS error count: -1
        IRQ misses: 2

           1 WCT1/0/1 Clear (In use) (EC: VPMADT032 - INACTIVE)
           2 WCT1/0/2 Clear (In use) (EC: VPMADT032 - INACTIVE)
           3 WCT1/0/3 Clear (In use) (EC: VPMADT032 - INACTIVE)
           4 WCT1/0/4 Clear (In use) (EC: VPMADT032 - INACTIVE)
           5 WCT1/0/5 Clear (In use) (EC: VPMADT032 - INACTIVE)
           6 WCT1/0/6 Clear (In use) (EC: VPMADT032 - INACTIVE)
           7 WCT1/0/7 Clear (In use) (EC: VPMADT032 - INACTIVE)
           8 WCT1/0/8 Clear (In use) (EC: VPMADT032 - INACTIVE)
           9 WCT1/0/9 Clear (In use) (EC: VPMADT032 - INACTIVE)
          10 WCT1/0/10 Clear (In use) (EC: VPMADT032 - INACTIVE)
          11 WCT1/0/11 Clear (In use) (EC: VPMADT032 - INACTIVE)
          12 WCT1/0/12 Clear (In use) (EC: VPMADT032 - INACTIVE)
          13 WCT1/0/13 Clear (In use) (EC: VPMADT032 - INACTIVE)
          14 WCT1/0/14 Clear (In use) (EC: VPMADT032 - INACTIVE)
          15 WCT1/0/15 Clear (In use) (EC: VPMADT032 - INACTIVE)
          16 WCT1/0/16 HDLCFCS (In use) (EC: VPMADT032 - INACTIVE)
          17 WCT1/0/17 Clear (In use) (EC: VPMADT032 - INACTIVE)
          18 WCT1/0/18 Clear (In use) (EC: VPMADT032 - INACTIVE)
          19 WCT1/0/19 Clear (In use) (EC: VPMADT032 - INACTIVE)
          20 WCT1/0/20 Clear (In use) (EC: VPMADT032 - INACTIVE)
          21 WCT1/0/21 Clear (In use) (EC: VPMADT032 - INACTIVE)
          22 WCT1/0/22 Clear (In use) (EC: VPMADT032 - INACTIVE)
          23 WCT1/0/23 Clear (In use) (EC: VPMADT032 - INACTIVE)
          24 WCT1/0/24 Clear (In use) (EC: VPMADT032 - INACTIVE)
          25 WCT1/0/25 Clear (In use) (EC: VPMADT032 - INACTIVE)
          26 WCT1/0/26 Clear (In use) (EC: VPMADT032 - INACTIVE)
          27 WCT1/0/27 Clear (In use) (EC: VPMADT032 - INACTIVE)
          28 WCT1/0/28 Clear (In use) (EC: VPMADT032 - INACTIVE)
          29 WCT1/0/29 Clear (In use) (EC: VPMADT032 - INACTIVE)
          30 WCT1/0/30 Clear (In use) (EC: VPMADT032 - INACTIVE)
          31 WCT1/0/31 Clear (In use) (EC: VPMADT032 - INACTIVE)
проверка прерываний - interrupts

Every 1.0s: cat /proc/interrupts             Sat Aug 16 15:21:34 2014

           CPU0       CPU1
  0:  298549499      30187    IO-APIC-edge  timer
  1:         61          4    IO-APIC-edge  i8042
  8:          1          2    IO-APIC-edge  rtc
  9:          0          0   IO-APIC-level  acpi
 12:       1614         57    IO-APIC-edge  i8042
 14:   41268991         24    IO-APIC-edge  ide0
 50:        126  116383116         PCI-MSI  eth0
 58:        168          0         PCI-MSI  hda_intel
169:       8391  298523206   IO-APIC-level  uhci_hcd:usb5, wcte12xp0
217:          0          0   IO-APIC-level  uhci_hcd:usb4
225:          0          0   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2
233:       2119    3653665   IO-APIC-level  uhci_hcd:usb3, ata_piix
NMI:          0          0
LOC:  298575253  298575261
ERR:          0
MIS:          0

DAHDI Tools

dahdi_tool

modules
модули dahdi

Asterisk Dialplan - extensions.conf

Файлы конфигурации Asterisk

Asterisk: Настройка

Имена екстеншенов и шаблоны в плане набора Asterisk.

$
0
0

Имена екстеншенов и шаблоны в плане набора Asterisk.

Имена екстеншенов.

Именами для екстеншенов в плане набора могут быть обычные номера, такие как “412” или “0”. Также они могут состоять из букв или строк, содержащих, как цифры, так и буквы, например, “john” или “A93”. Однако, на обычном телефоне невозможно набрать номер екстеншена, такой как “john”, там просто нет таких символов. Однако, на некоторых телефонных аппаратах можно исхитриться и набрать такой номер (например, на телефонах Cisco, с помощью алфавитно-цифровой клавиатуры). Но для таких экстеншенов есть другое логичное применение. Суть его состоит в том, что, проектируя логику Вашего плана набора, может возникнуть желание совершить переход с обработки последовательности команд одного екстеншена, на обработку последовательности команд, которые связаны с другим екстеншеном. Имя екстеншена, на который совершается переход, можно выбрать по Вашему желанию, т.к. в этом случае, вызов не попадает непосредственно в него, а используется скорее, как ветвление алгоритма плана набора, для изначального екстаншена (того, на который непосредственно попадает вызов).

И еще один момент, кнопочные телефоны часто содержат не только цифры от 0 до 9. У них еще бывают кнопки: * (звездочка) и # (называемые “pound” или “hash”, в зависимости от того, где вы живете). А некоторые кнопочные (DTMF) телефоны имеют еще и четыре дополнительные “цифровые” кнопки: A, B, C и D. Если в вашей организации есть подобные телефонные трубки, то ничего не мешает использовать в Вашем плане набора имена екстеншенов с этими символами, для каких-либо целей по Вашему усмотрению.

Замечание:Для того чтобы задать номер екстеншена, который вызывается набором символа #, Вам необходимо использовать шаблонный екстеншен (смотри ниже). Астериск не воспринимает # как обычный “символ”, хотя он есть у всех DTMFтелефонов.

Замечание: Екстеншен X - (без подчеркивания), это не шаблон, который совпадает с любой цифрой от 0 до 9, а простой екстеншен с именем «X».

Шаблоны для екстеншенов.

Имена екстеншенов не ограничиваются однозначно определенными “номерами телефонов”. Один экстеншен может быть сопоставлен целому набору номеров, на основе шаблона. exclaim В файле extensions.conf имя екстеншена является шаблоном, если оно начинается с символа подчеркивания (_). В именах шаблонных екстеншенов, следующие символы имеют специальное значение и трактуются особым образом:

X соответствует любому числу от 0 до 9
Z соответствует любому числу от 1 до 9
N соответствует любому числу от 2 до 9
[1237-9] соответствует любому числу или диапазону чисел, которые заключены в квадратные скобки (в данном случае: 1,2,3,7,8,9)
. специальный символ, соответствует одному или более символов (не только цифрам)
! специальный символ, соответствует отсутствию, одному или более символов (не только цифрам) 
Замечание: Символ шаблона «!» доступен, начиная с версии Asterisk 1.2 и в более поздних, он ведет себя особенно — как только все маски или символы до него совпали с набираемым номером и набираемый номер (на данный момент) не совпадает ни с одним шаблонным или простым екстеншеном в контексте, будет использоваться данный екстеншен, причем, не дожидаясь пока номер будет введен полностью. Это было сделано для следующих сценариев, например, как описано в контексте ниже, как только набираемый номер перестал совпадать с '001800…', будет задействована обычная телефонная линия и все последующие номера набираемого номера будут донабираться непосредственно в линию (с аудиоконтролем состояния линии) .
Context "outgoing":
Extension Description
_001800NXXXXXX Вызовы на бесплатные номера в US производим через VoIP
_X! Все остальные вызовы - через обычного телефонного оператора, с донабором в линию.
Пример

Посмотрим на следующий контекст:

Context "routing":
Extension Description
_61XX Dallas Office
_63XX Dallas Office
_62XX Huntsville Office
_7[1-3]XX San Jose Office
_7[04-9]XX Los Angeles Office
Этот контекст с именем “routing”, отправляет вызовы на другие сервера, в зависимости от номера екстеншена. Предполагается, что все номера в организации содержат 4 цифры. Если пользователь набрал номер, начинающийся с 61 или 63, то вызов будет отправлен на сервер «Dallas office»; 62 – на сервер «Huntsville office»; 71, 72, или 73 – в San Jose, 70, 74, 75, 76, 77, 78 или 79 – на сервер «Los Angeles office».

Еще примеры шаблонных екстеншенов.

_NXXXXXX соответствует обычному 7-значному телефонному номеру 
_1NXXNXXXXXX соответствует коду зоны и телефонному номеру
_9011. соответствует любой строке минимум из пяти символов, которая начинается с 9011, но не соответствует самому номеру 9011.
_9011! в отличие от предыдущего примера, соответствует еще и самому четырехзначному номеру 9011.
_# соответствует единичному нажатию клавиши #
Предупреждение

Не используйте шаблон _., т.к. он будет соответствовать вообще всему, включая специальные екстеншены сервера Астериска типа i, t, h, т.д. Вместо этого используйте шаблоны вида: _X. или _X, под которые не будут подпадать специальные екстеншены asterisk.

Порядок сортировки и поиска совпадений с шаблонными екстеншенами.

Если более чем один шаблон соответствует набранному номеру, Астериск может выбрать совсем не тот екстеншен, что Вы ожидаете. Для дополнительной информации, смотри страницу:

  • Порядок выбора совпадения при использовании шаблонных екстеншенов.

Файлы конфигурации Asterisk

asterisk:cf:ooh323.conf

$
0
0

; ---------------------------------------------------------------------------------
; ---  ******* IMPORTANT NOTE ***********
; ---
; ---  This module is currently unsupported.  Use it at your own risk.
; ---
; ---------------------------------------------------------------------------------

; Objective System's H323 Configuration example for Asterisk
; ooh323c driver configuration
;
; [general] section defines global parameters
;
; This is followed by profiles which can be of three types - user/peer/friend
; Name of the user profile should match with the h323id of the user device.
; For peer/friend profiles, host ip address must be provided as "dynamic" is
; not supported as of now.
;
; Syntax for specifying a H323 device in extensions.conf is
; For Registered peers/friends profiles:
;        OOH323/name where name is the name of the peer/friend profile.
;
; For unregistered H.323 phones:
;        OOH323/ip[:port] OR if gk is used OOH323/alias where alias can be any H323
;                          alias
;
; For dialing into another asterisk peer at a specific exten
;       OOH323/exten/peer OR OOH323/exten@ip
;
; Domain name resolution is not yet supported.
;
; When a H.323 user calls into asterisk, his H323ID is matched with the profile
; name and context is determined to route the call
;
; The channel driver will register all global aliases and aliases defined in
; peer profiles with the gatekeeper, if one exists. So, that when someone
; outside our pbx (non-user) calls an extension, gatekeeper will route that
; call to our asterisk box, from where it will be routed as per dial plan.


[general]
;Define the asetrisk server h323 endpoint

;The port asterisk should listen for incoming H323 connections.
;Default - 1720
;port=1720

;The dotted IP address asterisk should listen on for incoming H323
;connections
;Default - tries to find out local ip address on it's own
bindaddr=0.0.0.0

;This parameter indicates whether channel driver should register with
;gatekeeper as a gateway or an endpoint.
;Default - no
;gateway=no

;Whether asterisk should use fast-start and tunneling for H323 connections.
;Default - yes
;faststart=no
;h245tunneling=no

;Whether media wait for connect
;Default - No
;mediawaitforconnect=yes

;H323-ID to be used for asterisk server
;Default - Asterisk PBX
h323id=ObjSysAsterisk
e164=100

;CallerID to use for calls
;Default - Same as h323id
callerid=asterisk

; Whether asterisk send back to caller own connected line id on incoming call as called number
; Default - no
aniasdni=no

;Whether this asterisk server will use gatekeeper.
;Default - DISABLE
;gatekeeper = DISCOVER
;gatekeeper = a.b.c.d
gatekeeper = DISABLE

;Location for H323 log file
;Default - /var/log/asterisk/h323_log
;logfile=/var/log/asterisk/h323_log


;Following values apply to all users/peers/friends defined below, unless
;overridden within their client definition

;Sets default context all clients will be placed in.
;Default - default
context=default

;Sets rtptimeout for all clients, unless overridden
;Default - 60 seconds
;rtptimeout=60	    ; Terminate call if 60 seconds of no RTP activity
                    ; when we're not on hold

;Type of Service
;Default - none (lowdelay, thoughput, reliability, mincost, none)
;tos=lowdelay

;amaflags = default

;The account code used by default for all clients.
;accountcode=h3230101

;The codecs to be used for all clients.Only ulaw and gsm supported as of now.
;Default - ulaw
; ONLY ulaw, gsm, g729 and g7231 supported as of now
disallow=all     ;Note order of disallow/allow is important.
allow=gsm
allow=ulaw


; dtmf mode to be used by default for all clients. Supports rfc2833, q931keypad
; h245alphanumeric, h245signal.
;Default - rfc 2833
dtmfmode=rfc2833
;
; round trip delay request, default = 0,0 (not send)
; x - count of unreplied requests before hangup, y - interval in sec between requests
;
;roundtrip=x,y

;
; FAX detection will cause the OOH323 channel to jump to the 'fax' extension (if it exists)
; based one or more events being detected. The events that can be detected are an incoming
; CNG tone or an incoming T.38 RequestMode packet
;
; yes - enable both detection (CNG & T.38)
; no - disable both
; cng - enable CNG detection (default)
; t38 - enable T.38 request detection
;
faxdetect = cng

; User/peer/friend definitions:
; User config options                    Peer config options
; ------------------                     -------------------
; context
; disallow                               disallow
; allow                                  allow
; accountcode                            accountcode
; amaflags                               amaflags
; dtmfmode                               dtmfmode
; rtptimeout                             ip
;                                        port
;                                        h323id
;                                        email
;                                        url
;                                        e164
;                                        rtptimeout

;

;
;	direct rtp between two remote peers, disabled by default
;	can be specified globally or per peer/user section
;
directmedia=no
;
;	early direct rtp (try to establish direct rtp before asnwer)
;	disabled by default, auto enabled by directmedia is enabled
;	can be disabled escpecially if directmedia is enabled.
;	can be specified globally or per peer/user section
;
;
directrtpsetup=no

;Define users here
;Section header is extension
[myuser1]
type=user
context=context1
disallow=all
allow=gsm
allow=ulaw



[mypeer1]
type=peer
context=context2
ip=a.b.c.d   ; UPDATE with appropriate ip address
port=1720    ; UPDATE with appropriate port
e164=101



[myfriend1]
type=friend
context=default
ip=10.0.0.82   ; UPDATE with appropriate ip address
port=1820    ; UPDATE with appropriate port
disallow=all
allow=ulaw
e164=12345
rtptimeout=60
dtmfmode=rfc2833

Настроим Asterisk, FreeSWITCH, IP АТС.

$
0
0

Настроим Asterisk, FreeSWITCH, IP АТС.

Интегратор облачных систем телекоммуникаций Asterisk, FreeSWITCH.

Реализуем сложные ТЗ.

Удаленно, в любой точке мира.

Установка IP АТС на открытом программном обеспечении включает в себя следующие этапы:

  1. Разработка технического задания с учетом требований заказчика и возможностей IP АТС.
  2. Подготовка договора на установку и настройку и, если требуется, поставку оборудования.
  3. Подготовка счета на оплату с учетом технического задания, согласование сроков и порядка оплаты.
  4. Удаленная установка IP АТС в любой точке мира.
  5. Установка IP АТС с выездом на объект (Санкт Петербург).
  6. Предварительная настройка оборудования в нашем сервисном центре.
  7. Сдача проекта. Проверка работоспособности всех компонентов и алгоритмов работы IP АТС.
  8. Обучение для дальнейшей эксплуатации IP АТС сотрудниками заказчика.
  9. Бесплатная техническая поддержка в течении месяца с момента запуска в эксплуатацию.

Мы находимся в Санкт-Петербурге, но работаем по всему миру!

Решения

VoIPАТС

  • Неограниченное количество VoIPабонентов и транков.
  • Запись разговоров и детализированный отчет о звонках.
  • Факс на e-mail.
  • Русскоязычный интерфейс.
  • CTI - Интеграция со сторонними приложениями.

Колл Центр

Дополнительно

  • Аудит и обслуживание уже установленных систем Asterisk, FreeSWITCH и др.
  • Написание кастомизированного диаплана под любые нужды.
  • Интеграция с устаревшими TDMАТС (Avaya, NEC, Nortel, Samsung, Panasonic, LG).
  • Аудит и настройки безопасности VoIPсистем.
  • Биллинг. Многопользовательские системы.
  • SIP proxy, SBC.

Напишите нам!

Свяжитесь с нами для получения подробной информации!
Офисная АТС

Only edit this fieldset if “Функционал” is set to “Офисная АТС”.

Колл Центр

Only edit this fieldset if “Функционал” is set to “Колл Центр”.

Кастомные решения

Only edit this fieldset if “Функционал” is set to “Все сложно”.

FreePBX

$
0
0

FreePBX

Настройка FreePBX Asterisk GUI Документация Мануал

FreePBX это полнофункциональный веб-интерфейс для конфигурации Asterisk PBX.

Если Вы знакомы с Asterisk, то знаете, настройка ATCосуществляется при помощи конфигурационных файлов. FreePBX предлагает простой, интуитивно понятный интерфейс для настройки и управления Asterisk PBX.
FreePBX также поставляется со многими дистрибьютивами:
AsteriskNOW, FreePBX Distro, Trixbox, Elastix
Документация Мануал FreePBX Asterisk Gui

Скачать FreePBX

Документация

Общее

Уязвимости

Admin modules

Документация по административным модулям FreePBX

Applications

Документация по модулям приложений FreePBX

Connectivity

Документация по модулям входящих исходящих соединений FreePBX.

  • Inbound Routes - Наведение входящих вызовов , DID.
  • Outbound Routes - Маршрутизирует исходящие вызовы по требуемым транкам.
  • Zap Channel DIDs - Назначение DIDдля конкретных ZAP каналов.
  • Trunks - Управляет ZAP (Dahdi), SIPпротокол, IAXканалами для выхода в общую телефонную сеть, или соединения АТС.

Settings Modules

Документация по модулям глобальных настроек каналов и приложений FreePBX

UCP

Примеры

Устаревшее

FreeSWITCH

$
0
0

FreeSWITCH

Использование

FreeSWITCH

  • Сервер маршрутизации.
  • Сервер B2BUA.
  • Сервер IVR
  • Сервер Конференций
  • Сервер Голосовой почты
  • SBCСервер
  • Fax сервер
  • И, конечно, АТС!

FreeSWITCH это open source, масштабируемая, кросс-платформенная, телефонная система. Предназначена для маршрутизации и коммутации между большинством современных протоколов передачи аудио, видео, текстовых и других форм медиа данных. В данном разделе собрана русскоязычная документация по установке, настройке и использованию FreeSWITCH и сопутствующих приложений.

Установка FreeSWITCH

Настройка FreeSWITCH

FusionPBX

АТС

$
0
0

АТС

Avaya SIP Asterisk

Avaya Communication Manager SIP Trunks + Asterisk без использования Avaya SIP Enablement Services

Читать дальше...

Samsung OfficeServ 7200 - Обновление прошивки

 

LG IPECS LIK 50 SIP транк Asterisk

Ipecs LIK 50 default ip address - 10.10.10.2

В программе Station Sip Attributes 126 назначьте USER ID и PASSWORD для SIPтранка

Registration User ID - 701
Authentication User ID - 701
Authentication User Password -701
User ID Register - register

В программе SIP G/W Attributes назначьте IP адрес Asterisk

Proxy Server Address -10.10.10.3

Domain - 10.10.10.3

В программе CO/IP Attributes 140-142

CO Type - DID
DTMF Type - 2833

[701]
host=10.10.10.2
username=701
secret=701
type=friend
context=from-internal
insecure=port,invite
qualify=yes
nat=no

настройте транк в Asterisk

exten => 1XX,1,Dial(SIP/701/${EXTEN},,) 

и маршрутизацию

Настройка оборудования

Samsung OfficeServ SIP trunk + Asterisk

Настроим соединение между Samsung OS 7XXX (OfficeServ 7070, 7100, 7200, 7400) и двумя серверами Asterisk через SIPтранк, без авторизации.

В атс samsung [10.10.10.253] 3-х значные номера на 2ХХ
В asterisk1 [10.10.11.253] 3-х значные номера на 30X
В asterisk2 [10.10.12.253] 3-х значные номера на 31X

Читать дальше...

Samsung OfficeServ - VoIP телефонная сеть АТС

На рисунке приведены три наиболее значимых для настройки связи между УАТС MMC — 710, 820 и 824 .а также небольшой фрагмент номерного плана (MMC 724). Эти ММС приведены для каждой станции для того, чтобы можно было проследить их взаимосвязь. Схема приведена на рисунке 2.

Читать дальше...

 

Avaya SIP Asterisk

$
0
0

Avaya SIP Asterisk

Avaya Communication Manager SIP Trunks + Asterisk без использования Avaya SIP Enablement Services

...



Avaya Communication Manager SIP Trunks + Asterisk
без использования Avaya SIP Enablement Services

В Avaya Communication Manager 4.0 введена поддержка TCP для SIP транков на C-LAN, в то время как ранее поддерживалось только TLS. Это усовершенствование позволяет прямое подключение SIP транков к SIP прокси других производителей, без необходимости использования Avaya SIP Enablement Services (SES)

Топология сети

     172.16.1.101            172.16.1.253
                  SIP Транк
   AVAYA   <===========> ASTERISK Диаплан
     2ХХX                         3ХХХ

Настройка Avaya S8500 (s8300/s8700) PBX:

  • Avaya Software Version and Hardware Configuration List
  • Проверка лицензий Avaya Communication Manager
  • IP Node Names
  • IP-Codec-Set, and IP-Network-Region.
  • IP interface for C-LAN and IP Media Processor cards.
  • Avaya Signaling Group for the SIP Trunk to Asterisk
  • Avaya trunk group for the SIP trunk to Asterisk.
  • IP Codec Sets и Network Regions
  • Uniform DialPlan и Route Patterns

Avaya S8500 Software Version and Hardware Configuration List

list configuration software-versions
list configuration software-versions                                          

                             SOFTWARE VERSIONS
	SOFTWARE VERSION
       Memory Resident: R015x.02.1.016.4	
         Disk Resident: R015x.02.1.016.4
	TRANSLATION DATE
       Memory Resident: 11:27 pm THU AUG 19. 2014	
         Disk Resident: 11:27 pm THU AUG 19. 2014
      Disk Second Copy: good

list configuration carrier la                                           Page 1

 Board                                             Assigned Ports
 Number    Board Type           Code    Vintage    u=unassigned t=tti p=psa
 
 01A00     POWER SUPPLY           655A
 01A00     IP SERVER INTFC     TN2312BP HW07 FW050 01 02 03 04 05 06 07 08
 01A02     CONTROL-LAN          TN799DP HW16 FW024 u  u  u  u  u  u  u  u
                                                   u  u  u  u  u  u  u  u
                                                   17
 01A03     IP MEDIA PROCESSOR  TN2302AP	HW20 FW121 01    03    05    07
 01A04     DIGITAL LINE        TN2224CP HW01 FW015 01 02 03 04 05 06 07 08
                                                   09 10 11 12 13 14 15 16
                                                   17 18 u  u  u  u  u  u
 01A05     ANALOG LINE         TN746B   000010     01  u  u  u  u  u  u  u

Проверка лицензий Avaya Communication Manager

display system-parameters customer-options                       Page 2 of 11 

                               OPTIONAL FEATURES 
IP PORT CAPACITIES                                                USED
                          Maximum Administered H.323 Trunks: 5000 151 
                Maximum Concurrently Registered IP Stations: 5000 13 
                  Maximum Administered Remote Office Trunks: 0    0 
     Maximum Concurrently Registered Remote Office Stations: 0    0 
                   Maximum Concurrently Registered IP eCons: 0    0 
       Max Concur Registered Unauthenticated H.323 Stations: 10   0 
                       Maximum Video Capable H.323 Stations: 0    0 
                        Maximum Video Capable IP Softphones: 0    0 
                            Maximum Administered SIP Trunks: 50   20

IP Node Names

change node-names                                                 Page 1 of 1 

                               NODE NAMES 
							   
							   
Type            Name             IP Address             
IP              clan             172.16.1.101                      
IP              asterisk         172.16.1.253
IP              FS-NVB           172.16.21.253                      
IP              FS-MSK           172.16.45.28                       
IP              CCM-LA           172.16.78.34                       
IP              CM-NL            172.16.57.253
IP              ACM-NY           172.16.24.253
IP              IPO-BJ           172.16.67.23                  

IP interface for C-LAN and IP Media Processor cards

add ip-interface 2a02                                             Page 1 of 1 

                              IP INTERFACES 
                 Type: C-LAN 
                 Slot: 02A02 
          Code/Suffix: TN799 D 
            Node Name: clan 
           IP Address: 172.16.1.101
          Subnet Mask: 255.255.255.0                                 Link: Gateway Address: 172.16.1.1Enable Ethernet Port? y                             Allow H.323 Endpoints? y Network Region: 1                              Allow H.248 Gateways? y 
                 VLAN: n                               Gatekeeper Priority: 5 
 Target socket load and Warning level: 400 
       Receive Buffer TCP Window Size: 8320 
                            ETHERNET OPTIONS 
                Auto? y 

Avaya Signaling Group for the SIP Trunk to asterisk

add signaling-group 9                                              Page 1 of 1
                               SIGNALING GROUP
 Group Number: 9                    Group Type: sipTransport Method: tcp
  IMS Enabled? n							  Near-end Node Name: clan             Far-end Node Name: asterisk
  Near-end Listen Port: 5061           Far-end Listen Port: 5061
                                    Far-end Network Region: 1
        Far-end Domain: 172.16.1.253
                                          Bypass If IP Threshold Exceeded? n
 Incoming Dialog Loopbacks: Eliminate              RFC 3389 Comfort Noise? nDTMF over IP: rtp-payload        Direct IP-IP Audio Connections? y
Session Establishment Timer(min): 3                  IP Audio Hairpinning? Y
         Enable Layer 3 Test? no                 Direct IP-IP Early Media? no
H.323 Station Outgoing Direct Media? no        Alternate Route Timer(sec): 6

Avaya trunk group for the SIP trunk to Asterisk.

add trunk-group 9                                                Page 1 of 21 
                               TRUNK GROUP 
Group Number: 9                     Group Type: sip          CDR Reports: y Group Name: SIP Trunk to Asterisk           COR: 1       TN: 1        TAC: 815
   Direction: two-way         Outgoing Display? y 
 Dial Access? n                                          Night Service: 
Queue Length: 0 Service Type: public-ntwrk                    Auth Code? n 
                                                       Signaling Group: 9
                                                     Number of Members: 2 
add trunk-group 9                                                Page 2 of 21 
     Group Type: sip 
TRUNK PARAMETERS

 Unicode Name? y 
                                       Redirect On OPTIM Failure: 5000 

 SCCAN? n                                     Digital Loss Group: 18 
                 Preferred Minimum Session Refresh Interval(sec): 600
Disconnect Supervision - In? y Out? y				 
add    trunk-group 9                                              Page 3 of 21
TRUNK FEATURES
          ACA Assignment? n             Measured: none
                                                          Maintenance Tests? yNumbering Format: unknown
					      UUi Treatment: service-provider
                                      Replace Restricted Numbers? n
                                     Replace Unavailable Numbers? n
add     trunk-group 9                                             Page 5 of 21
                                  TRUNK GROUP
                                        Administered Members (min/max): 1/2
GROUP MEMBER ASSIGNMENTS                   Total Administered Memebers: 2

      Port         NAMES
1:  T00080         Asterisk SIP
2:  T00081         Asterisk SIP
3:
4:
5:
6:
7:
  

IP Codec Sets и Network Regions

change ip-codec-set 1                                            1 Page 1 of 2
                                IP Codec Set
        Codec Set: 1
        Audio     Silence       Frames Packet
        Codec     Suppression   Per Pkt Size(ms)
     1: G.711A         n          2       20
     2: G.711MU        n          2       20
     3: G.729A         n          2       20
     4: G.729          n          2       20
     5:
     6:
     7:
	     Media Encryption
     1: none
     2:
     3:	 
change ip-codec-set 1                                            1 Page 1 of 2
                                IP Codec Set
                            Allow Direct-IP Multimedia? y
	        Maximum Call Rate for Direct-IP Multimedia: 15360:Kbits
   Maximum Call Rate for Priority Direct-IP Multimedia: 15360:Kbits
                      Mode                 Redundancy
        FAX           t-38-standart         0
        Modem         off                   0
        TOD/TTY       US                    3
        Clear-channel n                     0
display ip-network-region 1                                     Page  1 of 19
                                IP NETWORK REGION
     Region: 1
   Location: 1    Authoritative Domain: 172.16.1.253
       Name: Asterisk
                                 Intra-region IP-IP Direct Audio: yes
   AUDIO PARAMETERS              Inter-region IP-IP Direct Audio: yes
      Codec Set: 1                           IP Audio Hairpinnig? y
   UDP Port Min: 2048
   UDP port Max: 65531                    RTCP Reporting Enabled? y
                                 RTCP MONITOR SERVER PARAMETERS
DIFFSERV/TOS PARAMETERS            Use Default Server Parameters? y
 Call Control PHB Value: 34
        Audio PHB Value: 46
        Video PHB Value: 26 
802.1P/Q PARAMETERS
 Call Control 802.1p Priority: 7
        Audio 802.1p Priority: 6       AUDIO RESOURCE RESERVATION PARAMETERS
H.323 IP ENDPOINTS                                        RVSP Enabled? n
  H.323 Link Bounce recovery? y
 Idle Traffic Interval (sec): 20
   Keep-Alive Interval (sec): 5
            Keep-Alive Count: 5
change ip-network-region 1                                       Page  3 of 19

                   Inter Network Region Connection Management 
 src dst codec direct  Total          Video                          Dyn 
 rgn rgn set   WAN  WAN-BW-limits  WAN-BW-limits Intervening-regions CAC IGAR 
 1   1   1 
 

Uniform DialPlan и Route Patterns

Route Patterns

change route-pattern 9                                            Page 1 of 3 

                     Pattern Number: 9 Pattern Name: to Asterisk
                                        SCCAN? n     Secure SIP? n 
      Grp FRL NPA Pfx Hop Toll No.    Inserted                     DCS/  IXC 
      No          Mrk Lmt List Del    Digits                       QSIG 
                               Dgts                                Intw 
   1: 9   0                                                         n    user 
   2:                                                               n    user 
   3:                                                               n    user 
   4:                                                               n    user 
   5:                                                               n    user 
   6:                                                               n    user 
    BCC VALUE TSC CA-TSC ITC BCIE Service/Feature PARM  No. Numbering  LAR 
   0 1 2 3 4 W    Request                              Dgts Format 
                                                   Subaddress 
 1: y y y y y n n       rest                                           none 

Public Unknown Numbering

change public-unknown-numbering 0                                  Page 1 of 2

                    NUMBERING - PUBLIC/UNKNOWN FORMAT 
                                Total                                  Total 
    Ext  Ext  Trk    CPN                  CPN Ext Ext  Trk    CPN       CPN 
    Len  Code Grp(s) Prefix               Len Len Code Grp(s) Prefix    Len 
     4   3    9                           4

Uniform Dial Plan and AAR Analysis

change uniform-dialplan 0                                         Page 1 of 2 

                        UNIFORM DIAL PLAN TABLE 
                                                   Percent Full: 0 
 Matching        Insert          Node  Matching         Insert          Node 
 Pattern Len Del Digits Net  Conv Num   Pattern  Len Del Digits Net Conv Num 
 3        4   0         aar   n                                      n 
change aar analysis 0                                              Page 1 of 2

                      AAR DIGIT ANALYSIS TABLE 
 Percent Full: 2 
     Dialed     Total      Route     Call    Node    ANI 
     String    Min Max    Pattern    Type    Num     Reqd 
     3          4   4      9         aar             n

Настройка оборудования

Приложения

$
0
0

Контакты


asterisk:cf:cli.conf

$
0
0

;
; Asterisk CLI configuration
;

[startup_commands]
;
; Any commands listed in this section will get automatically executed
; when Asterisk starts as a daemon or foreground process (-c).
;
;sip set debug on = yes
;core set verbose 3 = yes
;core set debug 1 = yes

Временный сброс пароля FreePBX

$
0
0

Временный сброс пароля FreePBX

Эта возможность работает, если опция Asterisk Advanced Settings - Enable Remote Unlocking (REMOTEUNLOCK) = true.
В версии FreePBX 2.11 - true по умолчанию.
Начиная с версии FreePBX 12 - по умолчанию - false

При помощи команды amportal a u xxxxxxxxxxxxxxxx-можно войти во FreePBX без ввода имени пользователя и пароля.
xxxxxxxxxxxxxxxx-требуется заменить на PHP ID сессии. Выполните следующие действия:

Откройте веб интерфейс FreePBX в вашем браузере - http://ip_address/adminи нажмите ctrl-A:

freepbx php session id

Слева вы увидите уникальный id php сессии. Скопируйте его и вставьте вместо xxxxxxxxxxxxxxxx-:

amportal a u cl1q3tp4tsaccit6pbl2vispp0

[root@localhost ~]# amportal a u cl1q3tp4tsaccit6pbl2vispp0

Please wait...

session unlocked!

После ввода этой команды, вы сможете зайти в веб интерфейс без ввода логина/пароля.

Разблокировка действует только для текущей php сессии и после обновления страницы, id сменится, и снова потребуется ввести пароль.

freepbx php session id

FreePBX

Соединение двух FreePBX

$
0
0

Соединение двух FreePBX

Существуют две точки входа в Диалплан FreePBX.
Это контексты [from-trunk] и [from-internal]. Когда вызов направляется в контекст [from-trunk], он обрабатывается как DIDи рассматривается как внешний вызов. Если же вызов направляется в контекст [from-internal] он рассматривается как внутренний вызов от SIP, IAXили DAHDIекстеншена Вашей АТС. Далее будет рассмотрен пример объединения двух FreePBX с созданием общего Диалплана, так, чтобы для конечного пользователя две машины работали как одна.

FreePBX «офис1» выходит через '9' на внешние линии и имеет внутреннюю нумерацию от 110 до 149.

FreePBX «офис2» выходит через '0' на внешние линии и имеет внутреннюю нумерацию в диапазоне от 200 до 249.

Первым делом создадим IAXтранк между двумя сторонами.

Для FreePBX «офис1»

Trunks

Trunk Name

office2
PEER Details
deny=all              запрещает использование всех аудио кодеков.
allow=g729&alaw       разрешает использование кодеков g729 и g711 alaw.
type=friend           может совершать и принимать звонки
host=IP'office2'      может совершать и принимать звонки с хоста 'office2'.
qualify=yes           регулярно поддерживать связь с удаленной машиной.
context=from-internal обрабатывать входящие звонки из 'office2'в контексте [from-internal]

Для FreePBX «офис2» создается такой же транк. Только изменяем host на IP'office1'.Trunk Name

 office1
PEER Details
deny=all
allow=g729&alaw
type=friend
host=IP 'office1'
qualify=yes
context=from-internal

Вот и все с транками. Теперь создадим исходящую маршрутизацию.

Для FreePBX «офис1»

Outbound Routes

Route Name

tooffice2
Dial Patterns
2[0-4]X
Trunk Sequence
IAX/office2

Для FreePBX «офис»

Route Name

tooffice1
Dial Patterns
1[1-4]X
Trunk Sequence
IAX/office1

FreePBX

Asterisk: cdr.conf

$
0
0

Asterisk: cdr.conf

cdr.conf - Общие (глобальные) настройки детализированного отчета о звонках и настройки cdr-csv и radius бэкендов.

Asterisk Call Detail Record engine configuration

CDRили Детализированный Отчет Вызовов - сервис обеспечивающий сохранение информации о совершенных вызовах. Информация может быть записана в базы данных, файлы и другие формы хранения данных. Используется для биллинга, предотвращения мошенничества Системы Оперативно Розыскных Мероприятий (СОРМ), оценки качества обслуживания и тд

 [general]

Использовать или нет сохранение CDR. Если установлено 'no', перекрывает любые параметры загрузки CDRмодулей. По умолчанию 'yes

 enable=yes

Указывает сохранять или нет информацию о неотвеченных вызовах. Если установлено 'yes', то информация о вызове будет сохранена, независимо от того ответила сторона B или нет. Если установлено 'no', то информация о вызове сохранена не будет. Это не касается вызовов через внешние исходящие линии (транки). Эти вызовы всегда будут сохраняться, независимо от статуса. Это нормальное поведение.

 unanswered = no

Сохранять или нет информацию о вызовах отвергнутых из-за перегрузки каналов (congestion). по умолчанию 'no'

 congestion = no

Обычно запись не сохраняется пока все расширения канала не будут выполнены. Включение данной опции позволит закрыть CDRдо выполнения расширения 'h', и момента когда положили трубку. Однако параметры CDR - 'end' и 'billsec' будут заданы на момент выполнения расширения 'h' (требует уточнения) По умолчанию 'no'.

 endbeforehexten=no

По умолчанию 'billsec' вычисляется, просто как разница 'end' минус 'answer' в секундах. Включение опции initiatedseconds=yes, укажет Asterisk использовать точные значения до микросекунд. В случае если часть в микросекундах 'end', больше чем часть в микросекундах 'answer', разница округлится до секунды в большую сторону и наоборот. По умолчанию «no».

 initiatedseconds=no

Групповой режим CDRсохраняет данные в буфер, чтобы потом залить в хранилище группой, что уменьшает нагрузку на сервер. Но может привести к потере данных при внезапной перезагрузке. По умолчанию «no».

 batch=no

Укажите максимальное кол-во значений в буфере, прежде чем данные будут залиты в хранилище. Работает если 'batch=yes'. По умолчанию 100.

 size=100

Укажите максимальную продолжительность времени, в миллисекундах, до освобождения буфера. Будет выполнено по истечению заданного времени, несмотря на значение 'size'. По умолчанию 300 (5 минут).

 time=300

Постить все в едином потоке планировщика Asterisk (scheduleronly=yes) или для каждой партии создавать новый поток (scheduleronly=no). Для небольших партий (до size=10) используйте только планировщик. Для больших новые потоки - scheduleronly=no. По умолчанию 'no'.

 scheduleronly=no

Блокировать выключение Asterisk до освобождения буфера. По умолчанию «yes».

  safeshutdown=yes

CDR "BACKEND"

Вы можете выбрать любой из нескольких бакендов для соранения данных. Возможно, также использовать все бакенды одновременно. В конфигурационных файлах, поставляемых с Asterisk, для примера, выбран только cdr-csv формат.

Бакенды:

Вспомогательные модули, кастомизация полей:

Для компиляции модулей, требуется чтобы их зависимости были установлены до выполнения команды configure. Воспользуйтесь командой make menuselect и в разделе «2. Call Detail Recording» убедитесь, что требуемые вам модули имеют свои зависимости и будут скомпилированы. В приведенном ниже примере видно, что для cdr_pgsql условия не выполнены, и модуль не может быть установлен.

        **************************************************
           Asterisk Module and Build Option Selection
        **************************************************

                      Press 'h' for help.
                        --- Core ---
                     [*] cdr_adaptive_odbc
                     [*] cdr_custom
                     [*] cdr_manager
                     [*] cdr_syslog
                       --- Extended ---
                     [*] cdr_csv
                     [*] cdr_odbc
                     XXX cdr_pgsql
                     XXX cdr_radius
                     [*] cdr_sqlite3_custom
                     XXX cdr_tds
                      --- Deprecated ---
                     XXX cdr_sqlite

To get CDRs to be logged to the plain-jane /var/log/asterisk/cdr-csv/Master.csv file, define the [csv] category in this file. No database necessary. The example config files are set up to provide this kind of output by default.

To get custom csv CDR records, make sure the cdr_custom.conf file is present, and contains the proper [mappings] section. The advantage to using this backend, is that you can define which fields to output, and in what order. By default, the example configs are set up to mimic the cdr-csv output. If you don't make any changes to the mappings, you are basically generating the same thing as cdr-csv, but expending more CPU cycles to do so!

To get manager events generated, make sure the cdr_manager.conf file exists, and the [general] section is defined, with the single variable 'enabled = yes'.

For odbc, make sure all the proper libs are installed, that «make menuselect» shows that the modules are available, and the cdr_odbc.conf file exists, and has a [global] section with the proper variables defined.

For pgsql, make sure all the proper libs are installed, that «make menuselect» shows that the modules are available, and the cdr_pgsql.conf file exists, and has a [global] section with the proper variables defined.

For logging to radius databases, make sure all the proper libs are installed, that«make menuselect» shows that the modules are available, and the [radius] category is defined in this file, and in that section, make sure the 'radiuscfg' variable is properly pointing to an existing radiusclient.conf file.

For logging to sqlite databases, make sure the 'cdr.db' file exists in the log directory, which is usually /var/log/asterisk. Of course, the proper libraries should be available during the 'configure' operation.

For tds logging, make sure the proper libraries are available during the 'configure' phase, and that cdr_tds.conf exists and is properly set up with a [global] category.

Also, remember, that if you wish to log CDR info to a database, you will have to define a specific table in that databse to make things work! See the doc directory for more details on how to create this table in each database.

[csv]
usegmtime=yes     log date/time in GMT.  Default is "no"
loguniqueid=yes   log uniqueid.  Default is "no"
loguserfield=yes  log user field.  Default is "no"
accountlogs=yes   create separate log file for each account code. Default is "yes"
newcdrcolumns=yes  Enable logging of post-1.8 CDR columns (peeraccount, linkedid, sequence).
                    Default is "no".

[radius]
usegmtime=yes     log date/time in GMT
loguniqueid=yes   log uniqueid
loguserfield=yes  log user field
 Set this to the location of the radiusclient-ng configuration file
 The default is /etc/radiusclient-ng/radiusclient.conf
radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf

Asterisk:cdr_custom.conf

$
0
0

Asterisk:cdr_custom.conf

cdr_custom.conf - тонкая настройка вывода полей CDRв csv файл. Обычно находится в директории /var/log/asterisk/cdr-custom/…)

;
; Mappings for custom config file
;
; To get your CSV output in a format tailored to your liking, uncomment the
; following lines and look for the output in the cdr-custom directory (usually
; in /var/log/asterisk).  Depending on which mapping you uncomment, you may see
; Master.csv, Simple.csv, or both.
;
;[mappings]
;Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})},${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})},${CDR(sequence)}
;
; High Resolution Time for billsec and duration fields
;Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration,f)})},${CSV_QUOTE(${CDR(billsec,f)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})},${CDR(sequence)}
;Simple.csv => ${CSV_QUOTE(${EPOCH})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})}

Файлы конфигурации Asterisk

Viewing all 1041 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>