ISDND(8)

명칭
isdnd - isdn4bsd ISDN 접속 관리 demon

서식
isdnd [-c configfile] [-d debuglevel] [-f] [-F] [-l] [-L logfile] [-P] [-r device] [-s facility] [-t terminaltype] [-u charging unit length] [-m]

해설
isdnd 유틸리티는 isdn4bsd 패키지의 demon이며, 이 패키지가 서포트한다 ISDN 디바이스의 모든 ISDN 관련의 접속이나 절단을 관리합니다.

옵션은 이하와 같습니다:

-c  디폴트의 파일 /etc/isdn/isdnd.rc 대신에, configfile (을)를 isdnd 의 실행시 설정 파일명으로서 이용합니다.

-d  isdnd 하지만 디버그 기능을 서포트하도록(듯이) 컴파일 되고 있는 경우에, 이 옵션을 사용해 디버그 레벨을 지정해, 어느 종류의 디버그 메세지를 표시하는지를 설정합니다. 디버그 레벨에는 다음의 값의 화를 지정합니다:

    0x001
        일반적인 디버그.
    0x002
        요금 계산.
    0x004
        타이밍 계산.
    0x008
        상태 이행.
    0x010
        재시행 조작.
    0x020
        다이얼.
    0x040
        프로세스 조작.
    0x080
        isdn4bsd 커널의 입출력 호출.
    0x100
        콘트롤러와 채널의 Busy/프리 메세지.
    0x200
        설정 파일 isdnd.rc 의 처리.
    0x400
        발호의 예산 처리.
    0x800
        유효한 키워드와 휴일 파일의 처리.

    이 값의 지정에 즈음하여, sscanf(3) 프로그램 라이브러리 routine가 서포트하는 기수의 어떤 것에서도 사용할 수 있습니다.

    게다가 이 옵션에서는 인수로서 캐릭터 「n」를 주어, 전화면 표시에 디버그 메세지를 표시시키지 않게도 할 수 있습니다.

-f  이 옵션을 지정하면(자), isdnd (은)는 전화면 모드에서의 조작에 바뀝니다. 이 모드로 조작하는 경우, 제어 캐릭터 Control-L (을)를 입력한다고 표시를 갱신합니다. 또, 복귀 캐릭터 (Carriage-Return) 또는 Enter 그리고 명령 윈도우를 표시합니다. isdnd 유틸리티는 명령 윈도우가 열려 있는 동안은 메세지를 받아들이지 않기 때문에, 5 초간 어느 코맨드 키도 밀리지 않으면, 이 명령 윈도우는 자동적으로 닫습니다.

    명령 윈도우가 열려 있을 때는, 탭 인가 스페이스 그리고 다음의 메뉴 항목에 진행됩니다. 명령을 실행하려면 , 하이라이트 표시된 메뉴 항목에 대해 Return 인가 Enter (을)를 입력하는지, 실행하는 항목에 대응하는 숫자를 입력하는지, 메뉴 항목 기술의 대문자를 입력해 주세요.

-l  이 옵션이 지정되면(자), 로그는 syslogd(8) 퍼실리티 경유가 아니고, 파일에 추가 써 됩니다.

-L  옵션 -l 하지만 지정되어 있을 때에 사용되는 로그 파일의 이름을 지정합니다. isdnd.rc(5) 의 시스템 섹션의 키워드 rotatesuffix 도 참조해 주세요.

-P  이 옵션은, 해석되고 유효하게 된 isdnd 의 설정을 isdnd.rc 파일과 같은 서식에서 출력합니다. 이 출력은 isdnd.rc 파일로서 이용할 수 있습니다. isdnd.rc 를 디버그 할 때에, isdnd.rc 입력 파일중에서 설정하고 있지 않는 옵션의 디폴트의 설정은 무엇인가를 조사하는 경우, 이 기능은 특히 유용합니다.

    출력을 끝내면(자), isdnd (은)는 종료합니다.

-F  이 옵션은, isdnd 하지만 제어 단말로부터 멀어져 demon가 되지 않게 합니다.

-r  -t 옵션과 함께 이용되어 device 그리고 단말 디바이스를 지정합니다. 이것이 isdnd 의 제어 단말이 되어, 여기에 전화면 모드의 출력이 표시되게 됩니다.

-s  syslog(3) 에 의한 로그가 설정되어 있어, 디폴트의 LOCAL0 퍼실리티 이외의 퍼실리티를 사용하고 싶은 경우에, 이 옵션을 이용해 로그 퍼실리티를 지정할 수 있습니다. 퍼실리티는 0-11 또는 16-23 의 범위의 정수로 지정합니다 (파일 /usr/include/syslog.h 를 참조).

-t  옵션 -f (와)과 -r (와)과 함께 이용되어 isdnd 의 전화면 출력에 사용되는 디바이스의 단말 타입인가 termcap 엔트리명 (vt220 등)을 terminaltype 그리고 지정합니다. 이 옵션은, 환경 변수 TERM 하지만 존재하지 않는, 미사용의 (getty 가 움직이지 않았다) tty 회선을 전화면 출력에 사용하는 경우에 유용합니다.

-u  설정 파일의 엔트리 키워드 unitlenghtsrc 하지만 cmdl (으)로 설정되어 있는 경우에, 과금 단위의 길이를 지정합니다.

-m  isdn demon가, 로컬 감시 또는 리모트 감시를 서포트해 컴파일 되고 있으면, 이 옵션은 감시 액세스를 모두 무효로 합니다. 이것은 설정 파일의 옵션 monitor-allowed 보다 우선됩니다.

커널과의 주고받아
isdnd 유틸리티는 isdn4bsd 의 커널 부분과 통신해, 상태나 이벤트 메세지를 받거나 (디바이스 /dev/i4b (으)로부터 read(2) 합니다), 명령나 응답을 보냅니다 (디바이스 /dev/i4b (으)로부터 ioctl(2) 합니다).

메세지 및 메세지 파라미터는, 인클루드 파일 /usr/include/machine/i4b_ioctl.h 에 기술되고 있습니다.

커널에의 명령와 응답 메세지 (ioctl) (은)는 다음의 것이 서포트되고 있습니다:
I4B_CDID_REQ
    교환국과의 로컬 D 채널의 단일의 교환을 일의에 식별한다 호기술 식별자 (CDID: Call Description IDentifier)를 요구합니다.
I4B_CONNECT_REQ
    호설정 (call setup)을 리모트 ISDN 가입자 (subscriber)에게 능동적으로 요구합니다.
I4B_CONNECT_RESP
    착호 (incoming call)에 대해, 받아들여 거부, 또는 무시한다고 응답합니다.
I4B_DISCONNECT_REQ
    능동적으로 호를 종료시킵니다.
I4B_CTRL_INFO_REQ
    설치되어 있는 ISDN 콘트롤러 카드에 대한 정보를 요구합니다.
I4B_DIALOUT_RESP
    dial out를 요구해 온 드라이버에 대해, 호설정에 관한 정보를 줍니다.
I4B_TIMEOUT_UPD
    동적으로 계산되는 쇼트 hold 모드의 타이밍이 바뀌었을 경우에, 커널의 타임 아웃치를 갱신합니다.
I4B_UPDOWN_IND
    커널의 유저 랜드 드라이버에 인터페이스의 소프트적 업/다운 상태 변화를 알립니다.
I4B_CTRL_DOWNLOAD
    액티브한 카드로 펌 웨어를 다운로드합니다.
I4B_ACTIVE_DIAGNOSTIC
    액티브한 카드로부터의 진단 정보를 돌려줍니다.

커널로부터 보내지는 상태 메세지와 이벤트 메세지는, 다음의 것이 서포트되고 있습니다:
MSG_CONNECT_IND
    리모트의 ISDN 유저로부터의 착호를 나타냅니다.
MSG_CONNECT_ACTIVE_IND
    착호가 로컬로 받아들여진 후, 혹은 발호 (outgoing call)가 리모트에 받아들여진 다음에, 교환국이 액티브 접속을 통지했습니다. 대응하는 B 채널이 교환됩니다.
MSG_DISCONNECT_IND
    호는 종료했습니다.
MSG_DIALOUT_IND
    유저 랜드 인터페이스 드라이버가 demon에게 dial out 하도록(듯이) 요구합니다 (전형적으로는, 네트워크 인터페이스의 송신 큐에 패킷이 닿을 때입니다).
MSG_IDLE_TIMEOUT_IND
    B 채널의 아이들타임 아웃이 일어났기 때문에, isdn4bsd 커널 드라이버가 호를 종료시켰습니다.
MSG_ACCT_IND
    네트워크 드라이버로부터의 어카운팅 정보입니다.
MSG_CHARGING_IND
    커널로부터의 과금 정보입니다.

  발호
현재로서는, 발호를 일으키는 유일한 가능성은, isdn4bsd 네트워크 드라이버 (ipr<n>) 하지만 MSG_DIALOUT_IND (을)를 isdnd 유틸리티에 보내는 것입니다.

demon는 ioctl 메세지 I4B_CDID_REQ (을)를 이용해, 커널로부터 새로운 CDID 를 요구합니다. 이후 이 CDID 는, 절단이 일어날 때까지, 커널과의 주고받아 모두에 있어, 이 단일의 호를 식별하는데 사용됩니다.

CDID 를 취득한 후, demon는 그 접속에 대응하는 설정의 엔트리 섹션으로부터 추가 정보를 몇개인가 조사해 ioctl 메세지 I4B_CONNECT_REQ (을)를 커널에 발행합니다. 여기서 커널은 리모트측에 다이얼 해, 리모트측이 호를 받아들이면(자), 커널은 demon에게 MSG_CONNECT_ACTIVE_IND (을)를 보냅니다.

로컬 사이트가 타임 아웃 할까 리모트측이 접속을 자르는, 혹은 로컬측이 능동적으로 ioctl 메세지 I4B_DISCONNECT_REQ (을)를 보내는 것으로, 호는 종료합니다. 어느 이벤트도, 커널이 I4B_DISCONNECT_IND 메세지를 보내 isdnd 에 통지됩니다. 또, 그 호에 대응하는 CDID 는 무효가 됩니다.

  착호
착호는, 커널이 MSG_CONNECT_IND 메세지를 보내 isdnd 에 통지합니다.

isdnd (은)는, 이 메세지에 포함되는 정보를 사용해 설정 데이타베이스의 엔트리 섹션을 찾아, 매치 했을 경우에는 그 호를 받아들인다, 또는 거부해, 매치 하지 않았던 경우에는 그 호를 무시합니다. 어느 경우에도 ioctl 메세지 I4B_CONNECT_RESP 에 적절한 파라미터를 지정해, 커널에 발행합니다.

demon가 호의 수락을 결정했을 경우, 커널은 MSG_CONNECT_ACTIVE_IND 메세지를 demon에게 보내, 이것을 통지합니다.

로컬 사이트가 타임 아웃 할까 리모트측이 접속을 자르는, 혹은 로컬측이 능동적으로 ioctl 메세지 I4B_DISCONNECT_REQ (을)를 보내는 것으로, 호는 종료합니다. 어느 이벤트도, 커널이 I4B_DISCONNECT_IND 메세지를 보내 isdnd 에 통지됩니다. 또, 그 호에 대응하는 CDID 는 무효가 됩니다.

시그널
HUP 시그널을 isdnd 에 보내면(자), 열려 있는 접속을 모두 종료시켜, 설정 파일을 다시 읽습니다. 앨리어스(alias) 파일 조작이 유효한 경우, 앨리어스(alias) 파일도 다시 읽습니다.

USR1 시그널을 isdnd 에 보내면(자), 어카운팅 파일과 ( syslog(3) 퍼실리티 경유의 로그 대신에 파일에 로그가 보내지는 경우는) 로그 파일이 클로우즈 되어 재오픈되어, 로그 파일의 교환을 가능으로 합니다.

환경 변수
다음의 환경 변수가 isdnd 의 실행에 영향을 줍니다:

TERM
    전화면 표시 모드로 실행될 때의 단말 타입입니다. 보다 자세하게는 environ(7) (을)를 참조해 주세요.

관련 파일

/dev/i4b
    커널의 ISDN 드라이버 하부조직과 통신하기 위한 디바이스 파일.

/var/log/messages
    syslogd 로그가 서포트되고 있을 때의 동작 기록.

/var/log/isdnd.acct
    디폴트의 어카운팅 정보 파일명 (어카운팅이 설정되어 있는 경우).

/var/log/isdnd.log
    디폴트의 로그 파일명 (파일에의 로그로 설정되어 있는 경우).

/var/run/isdnd.pid
    isdn demon의 프로세스 ID (isdnd 에서는 "lockfile" 라고도 불려 다중에 불려 가는 것을 막습니다).

/usr/local/lib/isdn

/etc/isdn
    자동 응답 전화를 서포트하기 위한 보조적인 데이터 파일이나 프로그램이 놓여져 있는 것을 isdnd 가 기대하는 디렉토리.

/etc/isdn/isdnd.rc
    디폴트의 실행시 설정 파일.

/etc/isdn/isdnd.rates
    디폴트의 과금 단위 요금 기술 파일.

/etc/isdn/isdntel.alias
    (앨리어스(alias)가 유효한 경우) 전화번호를 통화자의 이름으로 변환하는 디폴트의 겉(표).

사용예
최초로 시험 받을 때는, 설정을 잘 디버그 하기 위해서, 다음의 명령을 실행해 isdnd (을)를 foreground 모드로 기동하는 것이 좋을 것입니다:

    isdnd -d0xf9 -F

이 명령은, isdnd 를 타당한 디버그 설정으로 기동해, 현재의 단말에 출력을 생성합니다. isdnd 유틸리티는 그 후 Control-C 의 입력으로 종료할 수 있습니다.

다른 예로서 명령:

    isdnd -d0xf9 -f -r /dev/ttyv3 -t vt100

(은)는, 타당한 디버그 메세지를 유효하게 해, 전화면 모드의 동작, 전화면 표시는 /dev/ttyv3 에 리디렉트, 그 표시에는 vt100 용의 termcap 엔트리를 사용해 isdnd (을)를 기동합니다.

진단
종료 스테이터스는 성공시에는 0, 에러시에는 1 입니다.

관련 항목
i4bing(4), i4bipr(4), i4bisppp(4), isdnd.rates(5), isdnd.rc(5), isdntel(8), isdntrace(8), syslogd(8)

버그
아직 1 개(살) 이상 남아 있습니다.

저자
isdnd 유틸리티와 본메뉴얼 페이지는 Hellmuth Michaelis <hm@freebsd.org> 하지만 작성했습니다.