Instrukcje konfiguracji sprzętu VoIP FreeSwitch

Przykład konfiguracji Freeswitch w celu podłączenia do Zadarma.

Dane przedstawione w przykładzie:

‎ ‎
  • 111111: Twój numer SIP z Panelu Klienta.
  • Password: Twoje hasło numeru SIP z zakładki "Konfiguracji konta SIP" ‎‎w Panelu Klienta.
  • 1234-100: Twój numer wewnętrzny centrali telefonicznej z Panelu Klienta.
  • Password: Twoje hasło numeru SIP w Panelu Klienta.
  • 1000: Wewnętrzny numer Freeswitch, do którego podłączany ‎jest ię softphone / telefon IP w celu odbierania połączeń przychodzących i wykonywania połączeń ‎wychodzących.
  • ‎ ‎

‎1. Utwórz plik /etc/freeswitch/sip_profiles/external/zadarma.xml

‎ ‎

<include>
    <gateway name="zadarma">
        <param name="username" value="111111"/>
        <param name="password" value="Password"/>
        <param name="realm" value="sip.zadarma.com"/>
        <param name="from-user" value="111111"/>
        <param name="from-domain" value="sip.zadarma.com"/>
        <param name="proxy" value="sip.zadarma.com"/>
        <param name="expire-seconds" value="300"/>
        <param name="register" value="true"/>
        <param name="register-transport" value="udp"/>
        <param name="context" value="zadarma"/>
    </gateway>
</include>


<include>
    <gateway name="zadarma">
        <param name="username" value="1234-100"/>
        <param name="password" value="Password"/>
        <param name="realm" value="pbx.zadarma.com"/>
        <param name="from-user" value="1234-100"/>
        <param name="from-domain" value="pbx.zadarma.com"/>
        <param name="proxy" value="pbx.zadarma.com"/>
        <param name="expire-seconds" value="300"/>
        <param name="register" value="true"/>
        <param name="register-transport" value="udp"/>
        <param name="context" value="zadarma"/>
    </gateway>
</include>

‎2. Utwórz plik z ustawieniami Dialplan /etc/freeswitch/dialplan/zadarma.xml

‎ ‎

<?xml version="1.0" encoding="UTF-8"?>
<include>
    <context name="zadarma">
        <extension name="unloop">
            <condition field="$${unroll_loops}" expression="^true$" />
            <condition field="${sip_looped_call}" expression="^true$">
                <action application="deflect" data="${destination_number}" />
            </condition>
        </extension>
        <extension name="in-zadarma">
            <condition field="destination_number" expression="^(111111)$">
                <action application="bridge" data="user/1000@$${domain}"/>
                <action application="hangup"/>
            </condition>
        </extension>
        <extension name="out-zadarma">
            <condition field="destination_number" expression="^(\d{10,15})$">
                <action application="bridge" data="sofia/gateway/zadarma/$1"/>
                <action application="hangup"/>
            </condition>
        </extension>
        <extension name="local">
            <condition field="destination_number" expression="^\d{4}$">
                <action application="answer" />
                <action application="sleep" data="1000" />
                <action application="bridge" data="user/${destination_number}@$${domain}" />
                <action application="hangup" />
            </condition>
        </extension>
    </context>
</include>



<?xml version="1.0" encoding="UTF-8"?>
<include>
    <context name="zadarma">
        <extension name="unloop">
            <condition field="$${unroll_loops}" expression="^true$" />
            <condition field="${sip_looped_call}" expression="^true$">
                <action application="deflect" data="${destination_number}" />
            </condition>
        </extension>
        <extension name="in-zadarma">
            <condition field="destination_number" expression="^(1234-100)$">
                <action application="bridge" data="user/1000@$${domain}"/>
                <action application="hangup"/>
            </condition>
        </extension>
        <extension name="out-zadarma">
            <condition field="destination_number" expression="^(\d{10,15})$">
                <action application="bridge" data="sofia/gateway/zadarma/$1"/>
                <action application="hangup"/>
            </condition>
        </extension>
        <extension name="local">
            <condition field="destination_number" expression="^\d{4}$">
                <action application="answer" />
                <action application="sleep" data="1000" />
                <action application="bridge" data="user/${destination_number}@$${domain}" />
                <action application="hangup" />
            </condition>
        </extension>
    </context>
</include>

‎3. Utwórz w Freeswitch wirtualny numer 1000, do którego zostanie podłączony softphone / ‎telefon IP w celu odbioru połączeń przychodzących i wykonywania połączeń wychodzących. Edytuj ‎plik /etc/freeswitch/directory/default/1000.xml

‎ ‎
‎‎

<include>
    <user id="1000">
        <params>
            <param name="password" value="your_hard_pasword"/>
            <param name="vm-password" value="1000"/>
        </params>
        <variables>
            <variable name="toll_allow" value="domestic,international,local"/>
            <variable name="accountcode" value="1000"/>
            <variable name="user_context" value="zadarma"/>
            <variable name="effective_caller_id_name" value="Extension 1000"/>
            <variable name="effective_caller_id_number" value="1000"/>
            <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
            <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
            <variable name="callgroup" value="techsupport"/>
        </variables>
    </user>
</include>

Aby Freeswitch odczytał na nowo skonfigurowane pliki, należy zastosować polecenie fs_cli -x ‎reloadxml

Konfiguracja Freeswitch zakończona.