VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Входящие от gateway с авторизацией по ip и логину/паролю

Использование и настройка других открытых VoIP PBX

Модераторы: april22, Zavr2008

Indeec
Сообщения: 7
Зарегистрирован: 24 июн 2013, 16:23

Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Indeec »

Добрый день.
Кому нибудь удалось разобраться как freeswitch обрабатывает входящие вызовы от gateway?
На данный момент мне не удалось придумать ничего лучше чем разрешать входящие в apply-inbound-acl для всего sip профиля.
При этом не работают документированные фичи, такие как установка переменных для звонков пришедших от шлюза, да и проверить в диалплане с какого шлюза пришел звонок - становится сложно.
https://wiki.freeswitch.org/wiki/Clarif ... #Variables
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Vlad1983 »

профиль шлюза покажите
ЛС: @rostel
Indeec
Сообщения: 7
Зарегистрирован: 24 июн 2013, 16:23

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Indeec »

internal профиль в vanila конфиге, к примеру.
Вот выжимка баз коментариев

Код: Выделить всё

<profile name="internal">
  <aliases>
  </aliases>
  <gateways>
    <X-PRE-PROCESS cmd="include" data="internal/*.xml"/>
  </gateways>
  <domains>
    <domain name="all" alias="true" parse="false"/>
  </domains>
  <settings>
    <param name="debug" value="0"/>
    <param name="sip-trace" value="no"/>
    <param name="sip-capture" value="no"/>
    <param name="watchdog-enabled" value="no"/>
    <param name="watchdog-step-timeout" value="30000"/>
    <param name="watchdog-event-timeout" value="30000"/>
    <param name="log-auth-failures" value="false"/>
    <param name="forward-unsolicited-mwi-notify" value="false"/>
    <param name="rfc2833-pt" value="101"/>
    <param name="sip-port" value="$${internal_sip_port}"/>
    <param name="dialplan" value="XML"/>
    <param name="dtmf-duration" value="2000"/>
    <param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
    <param name="outbound-codec-prefs" value="$${global_codec_prefs}"/>
    <param name="rtp-timer-name" value="soft"/>
    <param name="rtp-ip" value="$${local_ip_v4}"/>
    <param name="sip-ip" value="$${local_ip_v4}"/>
    <param name="hold-music" value="$${hold_music}"/>
    <param name="apply-nat-acl" value="nat.auto"/>
    <param name="apply-inbound-acl" value="domains"/>
    <param name="local-network-acl" value="localnet.auto"/>
    <param name="record-path" value="$${recordings_dir}"/>
    <param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
    <param name="manage-presence" value="true"/>
    <param name="presence-hosts" value="$${domain},$${local_ip_v4}"/>
    <param name="presence-privacy" value="$${presence_privacy}"/>
    <param name="inbound-codec-negotiation" value="generous"/>
    <param name="tls" value="$${internal_ssl_enable}"/>
    <param name="tls-only" value="false"/>
    <param name="tls-bind-params" value="transport=tls"/>
    <param name="tls-sip-port" value="$${internal_tls_port}"/>
    <param name="tls-cert-dir" value="$${internal_ssl_dir}"/>
    <param name="tls-passphrase" value=""/>
    <param name="tls-verify-date" value="true"/>
    <param name="tls-verify-policy" value="none"/>
    <param name="tls-verify-depth" value="2"/>
    <param name="tls-verify-in-subjects" value=""/>
    <param name="tls-version" value="$${sip_tls_version}"/>
    <param name="inbound-late-negotiation" value="true"/>
    <param name="inbound-zrtp-passthru" value="true"/>
    <param name="nonce-ttl" value="60"/>
    <param name="auth-calls" value="$${internal_auth_calls}"/>
    <param name="inbound-reg-force-matching-username" value="true"/>
    <param name="auth-all-packets" value="false"/>
    <param name="ext-rtp-ip" value="auto-nat"/>
    <param name="ext-sip-ip" value="auto-nat"/>
    <param name="rtp-timeout-sec" value="300"/>
    <param name="rtp-hold-timeout-sec" value="1800"/>
    <param name="force-register-domain" value="$${domain}"/>
    <param name="force-subscription-domain" value="$${domain}"/>
    <param name="force-register-db-domain" value="$${domain}"/>
    <param name="challenge-realm" value="auto_from"/>
  </settings>
</profile>                                                                  
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Vlad1983 »

сам конфиг шлюза тот что в internal/
ЛС: @rostel
Indeec
Сообщения: 7
Зарегистрирован: 24 июн 2013, 16:23

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Indeec »

Вот:

Код: Выделить всё

<include>
  <gateway name="test">
    <param name="username" value="unused"/>
    <param name="realm" value="gatewayip"/>
    <param name="password" value="unused"/>
    <param name="register" value="false"/>
    <param name="caller-id-in-from" value="true"/>
    <param name="ping" value="25"/>
    <param name="from-domain" value="gatewayip"/>
    <variables>
       <variable name="call_direction"  value="incoming"  direction="inbound"/>
       <variable name="call_direction" value="outgoing" direction="outbound"/>
       <variable name="gateway_name"     value="test"/>
    </variables>
  </gateway>
</include>
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Vlad1983 »

<param name="register" value="false"/>
такой шлюз обычно по acl заводят

если сделаете
<param name="register" value="true"/>
в заголовке Contact запросов REGISTER увидите подстроку "gw-test"
когда она содержится во входящих INVITE (не помню в каких именно заголовках, т.к. не держу таких шлюзов), тогда FS может определить что вызов пришел именно на этот шлюз

если встречный софтсвич поддерживает обратную авторизацию заводите шлюзы через directory пример https://wiki.freeswitch.org/wiki/XML_Us ... c_Gateways
там же и проверка по IP <user id="1000" cidr="12.34.56.78/32,20.0.0.0/8"> <!--ID is the sip username. CIDR is optional -- if specified, these IPs with automatically auth to this user-->
только в этом случае и получите по "ip и логину/паролю"

можно чекать по acl в диалплане http://wiki.freeswitch.org/wiki/Acl#check_acl
обычно так и делаю, если требуется четкое разделение
ЛС: @rostel
Indeec
Сообщения: 7
Зарегистрирован: 24 июн 2013, 16:23

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Indeec »

Это всё понятно.
Тоесть всё-таки gateway в профиле применим только для исходящих звонков.
Для входящих с авторизацией по логину/паролю нужно заводить пользователя в directory. Для входящих с авторизацией по ip в apply-inbound-acl, и дальше уже в диалплане пытаться понять от куда звонок пришел.
И следовательно параметры установки переменных для входящих звонков в настройках gateway бесполезны.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Vlad1983 »

полезны только при <param name="register" value="true"/>
и то не со всех встречных софтсвичей это нормально работает
ЛС: @rostel
jugatsu
Сообщения: 298
Зарегистрирован: 31 май 2011, 15:56

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение jugatsu »

Так что надо сделать то?
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Входящие от gateway с авторизацией по ip и логину/паролю

Сообщение Vlad1983 »

не знаю в чем ТС вообще проблему нашел

1. мы не регаемся
  • логину/паролю - тогда directory (можно выставить индивидуальные переменные в профиле шлюза)
  • логину/паролю + IP - directory c cidr (можно выставить индивидуальные переменные в профиле шлюза)
  • IP без разбора кто, например для входящих - по acl в профиле sofia
  • IP с разбором - acl в профиле и acl в диалплане (можно выставить индивидуальные переменные, но задавать их в диалплане)
2. Мы регаемся
  • IP без разбора кто - по acl в профиле sofia
  • IP с разбором - acl в профиле и acl в диалплане или по заголовкам содержащим "gw-" (можно выставить индивидуальные переменные в профиле шлюза)
ЛС: @rostel
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH