��������� Callback � FreeBSD

� �������Ԧ ���դ ��������� ˦��˦��� ����Ҧ�̦� ��� ��, �� ����� ����������� ppp �'������� � ����������� ������������ FreeBSD. �������� �̦� ��������� �������, ���� ��� ������ ��������� �����, �� ���� ����� ���Ϥ��, ����, �� �������� �� ��, �� ����� �� ���������� pppd ��� ˦���� ��˦�, �� �������� ��Ϥ� ����������Ԧ �� æ� ��ͦ. ������ æ ������� �� ����� �������æ� ��� ������������ �'������� � ����������� ����� callback. ����Ȧ�Φ��� ������������ ������� callback ������ ����� ����Ȧ�Φ��� ������� ���� ���Ԧצ ���ۦ �� ������������ ���������� ̦Φ��, �� �����, �� �� ������� ���������� ��������.

www.opennet.ru ������դ ˦���� ������ �˦ ��������� �� �����ϧ�� callback. �Ӧ ���� �������������� pppd ��� ������������ ������� �'������� � ����������� �� ��� ��������� ��צ��� צ� ����������. ������������ ������ Ц����� �� ���� ��������Ԧ� ��� ���� ���������� - ��˦���� צ� ����� ��� ����� Ҧ��� ��צ�������� ������� �� ��Ǧ� �� ������ � �� ����դ �� ���������æ� pap-chap ����� pppd. � ������ ���� ������������ ppp (user ppp) � ���������� ppp.conf ������ ��� �����צ��� Ц���������� �� ���������� ��������� צ� ����, �� צ� ������դ ����������� ������Ʀ������ ����, �� �� Ц�����դ ��� ��������� ���������æ� PAP-CHAP.

��� � ����Ȧ���� צ�������� �����צ ������� ��� ����������, �'������� � ���� ���������������. ���� ������� callback: ������� �����դ���� �� ���Ԧ, �� ���� ������ ����� �� ��������� ���������� (�������������) Ц���������, �� ���Ԧ �������������� �����, �� ����� ��������� ����������� �� �����������, ���� ����� ������������� �������� callback. ����� ����, ��� ��������� �����������, ����Ȧ��� ���������� ppp �'������� � ���, ��� ��� ������Φ ���Φ ����������� ����Ȧ��� ������ :c �� ˦�æ (��� ����� � ������Ħ ppp.conf). ����������� ��� ��������� Svit Online, � �� ����� Ц��������� � ͦ�Ԧ �ɤצ. ���������� �� ��, � ������ ������Φ �������æ� ��� ¦��� ���������� Ц��������� �� ���������� �� ��������� ������� callback.

��˦���� Φ�� �� �������Ѥ ��������������� user ppp ��� ���� ��� ��������� ���������� ������������ �����������פ � ��Ԧ� "������" ��צ��� צ� ���������� �� ��������� ��� pppd, ���������� ��� �����צ��� ������������ ¦����� ˦��˦��� ����������� user ppp ��� ������������ �'�������.

��� ����, ��� ���������� ���������� � ���������� � ��� ppp �'������� ������ ����� ������ ����Ȧ�Φ �ͦ�� �� ����� /etc/ppp/ppp.conf:

����������� צ���צ���� ���Ħ�, �� צ���צ��� �� ����������, �� Ц�����դ callback. � ��������Ԧ /etc/ppp/ppp.conf ����������� ��������� ����� �����:

#
#-rw-------  1 root  wheel    1418  5 ��� 23:18 ppp.conf
#
default:
 set log Phase Chat LCP IPCP CCP tun command
 set device /dev/cuaa0
 set speed 115200
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
           OK-AT-OK ATE1Q0 OK ATL1 OK \\dATDP\\T TIMEOUT 50 CONNECT"
 allow user YOUR_USER_NAME

# Client side PPP

GT-no_callback:
 set phone PROVIDER_TEL_NUMBER
 set login
 set authname "user"
 set authkey "********"
 set timeout 120
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR
 enable dns

GT:
 set phone PROVIDER_TEL_NUMBER
 set login
 set authname "user:c"
 set authkey "*******"
 set timeout 120
 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR
 enable dns

callback:
 load GT                                # load in the GT config
 set callback auth cbcp e.164 YOUR_PHONE_NUMBER
 set cbcp YOUR_PHONE_NUMBER

���� /etc/ppp/ppp.conf ��� �������� ����������� root �� ���� ������ 600. ����� ���� /etc/ppp.conf �� �������� ���� (��� ���צ, �� �� �ͦ���� ����� YOUR_USER_NAME, user, ********, PROVIDER_TEL_NUMBER �� YOUR_PHONE_NUMBER �� ��� ��Ǧ� �� ������ ����'���Ҧ, ��Ǧ� �� ����������, ������, ����� �������� ���������� �� ����� ������ ��������) �� ������ ���������� �'������� � ����������� �� ��������� �������ϧ �������:

ppp -a GT-no_callback

(��� ����, ��� ���� �'������ ����� ���� ���������� ��� ���� ���������������� (root) ����Ȧ��� ���� ������ ����� network (���. ���� /etc/group)

������������ ���� �'������� ��������:

killall ppp

���� ������������ ����� �'������� ���� �ͦ���� ���� /etc/resolv.conf ���, �� � ����� �'�������� IP ������ ���������� �� ������������ DNS �����Ҧ� ����������. ���� ����� �� �'������� ���������� ����� ���� ���. ��˦���� ���� �'������� �� ����������դ callback, ��������������� ���� Ц��� ������� ���� ��� (� ����� æ�� ����Ԧ) �� æ����.

�� ��� ��������� ���� - ͦ� ��������� ������������, ���� �� ���Φ ����������� ������ :c �� ˦�æ. ����, ���� ��������� �������:

ppp -b GT

���� ����������� ppp �'������� � �����������, ��� צ� ��ڦ��� � ������������ (�� ���������� �� ���Ԧ �������).

��� ¦��� ���������� �������, ���� ��������� ���� �������� צ� ����������� ����� (�� ���� ����� ������������) Ц� ��� ������� �'������� �������դ���� ���Ħ��� ��������� /etc/ppp/ppp.conf � ������ callback. ��� ���Ħ� ����������դ �Ӧ ��������� ���Ħ�� GT �� Ц��� ������������ �'������� ������� ���������� �����, �� ���� ��������� ��� ������������. � ��� ������� ������ަ �������æ� ��� callback �� ���������� ����� ppp, ��� ������������ �� ������ ��� ����������Ԧ. ����� ������������������ - ������������� ��� �� �����.

��� ��� ����, ��� �Φæ�̦������ callback צ� ���������� ����Ȧ��� ��������� �������� �������:

ppp -b callback

���� ������� æ�� ������� ���� ����������� ppp �'������� � �����������, ��� ��������� ��ڦ���, ��������� ����Ȧ��� ���� �������æ�. � �����̦ ���� ������ ��צ�������� �� ������������ �'������� �� �������.

������ڦ ��������� ������������, � ����� ���� �������� צ� ����� �'�������... ������. ��� �����, �� ���� �� ���������� ������� (����������� �� ������) ����� �������� �������� -- ��������� ppp, �צ��� � ���ͦ������� �����, �� צ���צ��� �� �Ȧ���� ��צ���. � �����̦ �� �������� ��������� ���:

%ppp
Working in interactive mode
Using interface: tun0
ppp ON localhost> term
deflink: Entering terminal mode on /dev/cuaa0
Type `~?' for help
...

��̦, ���� ���� �������� �Ȧ���� ��צ���, �� ��������:

RING

���� �� �� �������� ����� �������:

ata

�� ������� ������ צ���צ��� �� �Ȧ���� ��צ���. ��̦, Ц��� ����, �� �� �������� �������, ��� ����������� �� PPP (���������� ̦������ - �� �������) ����� ��������� �� ���������� default route (����� ����������, �� ���� ������� �����æ��� ������� ��� ����������, ���� ���� �� ���� ������ ���������� �������). �� �������� ��������:

add default HISADDR

���ΦӦ���� �� � /etc/ppp/ppp.conf ! ��� - �'������� ����������� �� ��������� callback. ���� ���� ppp ����� ��������� � ���������, ��� ������ �������� �������, � �˦� �������� �Ӧ �����Φ ���� �����æ�. ��ڦ����� �'������� ����� �� � ��Φ�� ��������: killall ppp .

��� ���Ӧ� - ���� � � ���Ӧ� ���������, ��� �����צ��� ������ ��������� �������, �˦ צ���������� Ц� ��� ������������ �'������� ������������ �������� callback. ������� � ����� ��� �� צ��������, ��� ����, ��� ����� �����ͦ�� �� צ����������... ���� ������ ��������� � �������, ��� ����, ��� ��������, �Ӧ �������, �˦ ������ ������������. ���ͦ����� ��, ����� "�������" �����æ��� ������� ��������� �� ��� ��� ����, �� � ���������� ���� �������ͦ ����դ ��������. ��� �� Ц������� �� ����������æ� ������� ������������ ppp �'������� � ����������� � ������������� callback.

�������� � ������, ���������� ���� - ��� ���� ��� ���������� �'������� � ����������� ������������ callback ����Ȧ��� ���������� ���������� (��� ����, ��� �������� �������æ� ��� ��������, ���� ����� ���������� �'������� ������������ callback), צ���צ��� �� �Ȧ���� ��צ���, ���������� �� ����� ppp �'�������, �� ���������� �� ����� �'�����Φ defaultroute. ��˦���� ��������� ������ � �� �ͦ������� - �� ����� ��������������. ��� ���� ��� ���������� ���������� ��� ��� ������. ���������� ���� ������� ��� ����������� צ���צ����� �� �Ȧ���� ��צ��� �� ������������ �������� ppp �'�������.

�����צ��� �� �Ȧ��� �'������� ����� �� ��������� pppd �������������� ������� chat ��Ҧ��:

#
#-r-xr-x---  1 root  network   111 28 ��� 01:21 callback.script
#
#!/bin/sh
#
#accept incoming connection

""              AT
OK              ATL1
OK              ATZ
TIMEOUT         125
RING            ATA
"}"             "\\�"

��� ��Ҧ�� ���Ҧ������� � ���̦ /etc/ppp/callback.script �� ����� ����� ����� ���� ������ ���������ަ ����� network. � ̦�� ������� ������� ��, �� �ަ�դ���� צ� ������, � � ���צ� �����æ ������� ���� ������� (�� �������� ������ TIMEOUT 125 - �� � �������� �ͦ��ϧ). ������������ ��� ��Ҧ�� ����� ��������� chat ��� ������������ ������, �� ��������� �������ϧ �������:

chat -v -s -f /etc/ppp/callback.script

��� ����� �� ����� �����̦ ������ ���������� ��צ�������� צ� chat ��� �� �� צ� �ަ�դ, � ���� ���� �� ����� � ���צ�����.

��� ����, ��� pppd �������� ��� ��Ҧ�� ����Ȧ��� ���� ���������� ������� ���� /etc/ppp/options:

#
#-rw-------  1 root  wheel     481 27 ��� 21:28 options
#
/dev/cuaa0 115200

crtscts         # enable hardware flow control
modem           # modem control line
connect "/usr/bin/chat -f /etc/ppp/callback.script"
noipdefault     # remote PPP serve must supply your IP address
                # if the remote host doesn't send your IP during
                # IPCP negotiation, remove this option
passive         # wait for LCP packets

defaultroute    # put this if you want that PPP server will be
                # your default router
asyncmap 0
debug

�������� � ��, �� ��� ���� ��� �������� ����������� root �� ���� ������ 600, ������ pppd �� �����������. /dev/cuaa0 �� ����� ͦ���� ���� � ���� �������, ���� �����, ���� ����������դ���� ��� Ц�'������� �� �������� Ц��������� �� ������� ���̦������� ����� (COM1). ��� ��, �� ��������� �Ӧ æ ������ �������� ������ �� ����, � � ����������� �� ����, ����� ���� �������� ����� �� �� ������ ��� ����������� � connect - � Φ� ��������� ��Ҧ��, ���� ���� ����������������� ��� ����������Φ �'�������, �� ����� ��� ��Ҧ�, ���� ������� ����.

���� ���������� ���� /etc/ppp/options �� ͦ�æ, pppd (������� צ���צ��� �� �Ȧ���� ��צ���) ������������ ������ - ��������:

pppd

��� ��� ���� ��� ���������� ��������� ���Ҧ��� ������� ����� �'������� � ��� - ��� �� ������� ����. ���� ��'������� ��צ��� �� ���������� �� ��������� �Ȧ����� ��צ��� צ� ����� � ��������� ��Ҧ��:

#
#-r-xr-x---  1 root  network   120 27 ��� 21:30 callback
#
#!/bin/sh
#
# dial for callback
ppp -b callback

# answering...
pppd

if [ "$?" = "0" ]; then
        exit 0
fi

exit 1

��� ��Ҧ�� ���Ҧ������� � ���̦ /etc/ppp/callback , �������� ����������� root � � ��������� ������������ � ����� network.

�� ����� ���! �����, ��� ����, ��� ���������� �'������� � �����������, ������������ ������� callbak ��������� ��������� �������:

/etc/ppp/callback

��ڦ����� �'�������, ��� ��������� ���� � �����Ӧ ����������� (���� �������� �����, ��� ���� �� ������ ���� ��������) ����� ��������:

killall pppd

�Ӧ ������� ������������ ������������, ���� �������� �� ����� network. �� ����� �������� �����צ ������˦, �˦ ������������ �'������� � ����������� �� ���������� ���� �� ���ͦ����� �� �� ������Ц ��� �����������, ���� ���� �� ���� �Φ ����̦ ���� ��� ��, �� � �� צ���������� ���� צ� �� ��������.

���������:

1. FreeBSD Handbook: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html

2. ������������ ���� ����� ���Ϥ��: http://www.sysoev.ru

3. ������ �� www.opennet.ru ��� ��������� callback: http://www.opennet.ru/base/modem/cbcp_pppd.txt.html

4. ��Ԧ�� ����������� ���ͦ������� ������ ������: http://fan.nb.ca/cfn/info/help/com-prog/modemcommandslist.html

Updated 2004 Sep 10
by Stan.