Chapter 9 TAPI °´Ã¼

À̰ÍÀº Äõ¸®¿Í ¼Â Á¤º¸ ¿äûµé ¸ðµÎÀÇ TAPI ¿ÀºêÁ§Æ®µéÀ» À§ÇÑ OIDµéÀ» Á¤ÀÇÇÑ´Ù. ÀÌ·¯ÇÑ OID µéÀº À¯Àú-¸ðµå TAPI ¼­ºñ½º Á¦°øÀÚµé°ú ¾Æ·¡ÀÇ WAN NIC ¹Ì´ÏÆ÷Æ® µé»çÀÌÀÇ ¿äû ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÑ´Ù. °¢°¢ÀÇ ±×·± ¿äûµéÀº NDITAPI¿Í NDISWANÀ» ÅëÇØ¼­ ¸ñÇ¥ ¹Ì´ÏÆ÷Æ®±îÁö °£´Ù.

Ưº°È÷ ÀÌ·¯ÇÑ OID ¿äûµéÀÌ ¹ß»ýÇÏ´Â À¯Àú-¸ðµå ¼­ºñ½º Á¦°øÀڵ鿡 °üÇÑ ÃÖ»óÀ§-·¹º§ TAPI ÄÄÆ÷³ÍÆ®µé¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸´Â, Win32 SDK¸¦ ºÁ¶ó.

¾Æ·¡ÀÇ Â÷Æ®´Â WAN ³×Æ®¿öÅ© »ó¿¡¼­ TAPI¸¦ Áö¿øÇÏ´Â NIS µå¶óÀ̹ö¿Í NICµéÀ» À§ÇÑ Ãß°¡ÀûÀΠƯ¼ºµéÀ» ¾ò±â À§Çؼ­ »ç¿ëµÈ OIDµéÀ» ¿ä¾àÇÑ´Ù.

Q S Name
    Àǹ«ÀûÀÎ OID_TAPI_XXX
M OID_TAPI_ANSWER
ÀÀ´ä
M OID_TAPI_CLOSE
´Ý±â
M OID_TAPI_CLOSE_CALL
È£Ã⠴ݱâ
M OID_TAPI_CONDITIONAL_MEDIA_DETECTION
Á¶°ÇºÎÀÇ ¹Ìµð¾î °ËÃâ
M OID_TAPI_DROP
µå¶ø
M   OID_TAPI_GET_ADDRESS_CAPS
ÁÖ¼Ò ´É·Âµé ¾ò±â
M OID_TAPI_GET_ADDRESS_ID
ÁÖ¼Ò ID ¾ò±â
M OID_TAPI_GET_ADDRESS_STATUS
ÁÖ¼Ò »óÅ ¾ò±â
M OID_TAPI_GET_CALL_ADDRESS_ID
È£Ãâ ÁÖ¼Ò ID ¾ò±â
M OID_TAPI_GET_CALL_INFO
È£Ãâ Á¤º¸ ¾ò±â
M OID_TAPI_GET_CALL_STATUS
È£Ãâ »óÅ ¾ò±â
M OID_TAPI_GET_DEV_CAPS
ÀåÄ¡ ´É·Âµé ¾ò±â
M OID_TAPI_GET_ID
ID ¾ò±â
M OID_TAPI_GET_LINE_DEV_STATUS
¶óÀÎ ÀåÄ¡ »óÅ ¾ò±â
M OID_TAPI_MAKE_CALL
È£Ãâ ¸¸µé±â
M OID_TAPI_OPEN
¿­±â
M OID_TAPI_PROVIDER_INITIALIZE
Á¦°øÀÚ ÃʱâÈ­
  M OID_TAPI_PROVIDER_SHUTDOWN
Á¦°øÀÚ ¼Ë´Ù¿î
M OID_TAPI_SET_APP_SPECIFIC
¾îÇø®ÄÉÀÌ¼Ç Æ¯Á¤ ¹øÈ£ ¼³Á¤Çϱâ
M OID_TAPI_SET_CALL_PARAMS
È£Ãâ ÆÄ¶ó¹ÌÅÍ ¼³Á¤Çϱâ
M OID_TAPI_SET_DEFAULT_MEDIA_DETECTION
µðÆúÆ® ¹Ìµð¾î °ËÃâ ¼³Á¤Çϱâ
M OID_TAPI_SET_MEDIA_MODE
¹Ìµð¾î ¸ðµå ¼³Á¤Çϱâ
M OID_TAPI_SET_STATUS_MESSAGES
»óÅ ¸Þ½ÃÁö ¼³Á¤Çϱâ
  Ãß°¡ÀûÀÎ OID_TAPI_XXX
O OID_TAPI_ACCEPT
¼ö¶ôÇϱâ
O   OID_TAPI_CONFIG_DIALOG
´ÙÀ̾ó·Î±× ±¸¼º
O OID_TAPI_DEV_SPECIFIC
ÀåÄ¡ ƯÁ¤
  O OID_TAPI_DIAL
ÁöÁ¤µÈ È£ÃâÀ» À§ÇÑ ÁöÁ¤µÈ ¹øÈ£ ÀüÈ­°É±â(Dial)
O   OID_TAPI_GET_DEV_CONFIG
ÀåÄ¡ ±¸¼º ¾ò±â
O OID_TAPI_GET_EXTENSION_ID
È®Àå ID ¾ò±â
O OID_TAPI_NEGOTIATE_EXT_VERSION
ÃÖ»óÀ§(Highest) ¼ö¶ôÇÒ¼ö ÀÖ´Â ¹öÀü È®Àå ¸®ÅÏ
  O OID_TAPI_SET_DEV_CONFIG
ÀåÄ¡ ±¸¼º ¼³Á¤Çϱâ
O OID_TAPI_SECURE_CALL
È£Ãâ ¾ÈÀü º¸ÀåÇϱâ
O OID_TAPI_SELECT_EXT_VERSION
È®Àå ¹öÀü ¼±ÅÃÇϱâ
O OID_TAPI_SEND_USER_USER_INFO
»ç¿ëÀÚ¿¡°Ô »ç¿ëÀÚ Á¤º¸ º¸³»±â

´Ù¸¥ OIDµé°ú ºñ±³Çؼ­, Á¤ÀÇµÈ TAPI OID °ªµéÀº °¢°¢ÀÇ OID°¡ ¿ä±¸µÇ´Â °ÍÀÎÁö Ãß°¡ÀûÀÎ °ÍÀÌÁö ¾Ë¸®Áö ¾Ê´Â´Ù. TAPI OID ¿äûµéÀ» À§ÇÑ Á¤º¸ ¹öÆÛÀÇ ±æÀÌ´Â OID-ƯÁ¤ ±¸Á¶Ã¼¿¡ µû¶ó ´Ù¾çÇÏ´Ù. ¸î¸í OID-ƯÁ¤ ±¸Á¶Ã¼ÀÇ ÀνºÅϽº´Â ¶ÇÇÑ Å©±â¿¡¼­, Ưº°È÷ ³ªÁß¿¡ ¼³¸íµÈ ŸÀÔ VAR_STRINGÀÇ ¸â¹ö¸¦ °¡Áö´Â TAPI-Á¤ÀÇµÈ ±¸Á¶Ã¼µé¿¡ ´ëÇØ¼­ ´Ù¾çÇÏ´Ù.

WAN NIC ¹Ì´ÏÆ÷Æ®µéÀº ¾Õ Â÷Æ®¿¡¼­ Àǹ«Àû(Mandatory)À¸·Î ºÙ¿©Áø OIDµéÀ» Áö¿øÇؾßÇÑ´Ù. ÁÖ¾îÁø ¹Ì´ÏÆ÷Æ®¿¡ È®Àå(extent)Àº µå¶óÀ̹ö ÀÛ¼ºÀÚµéÀÇ Àç·®°ú NICÀÇ ´É·Âµé¿¡ ÀÇÁ¸ÇÏ´Â ¾ÕÀÇ Â÷Æ®¿¡ ÀÖ´Â ÀÌ·¯ÇÑ ·¹À̺íµÈ(labeled) Ãß°¡ÀûÀÎ(Optional)°ÍÀ» Áö¿øÇÑ´Ù.

±â´ÉÀûÀÎ ¿ä±¸µéÀº ¸î°³ÀÇ TAPI OID ¿äûµé¿¡ ´ëÇØ¼­´Â ²Ï °£´ÜÇÏ´Ù. ¿¹¸¦µé¸é, OID_TAPI_SET_APP_SPECIFIC ¿äûµéÀº NIC µå¶óÀ̹ö°¡ ´ÜÁö ULONG °ªÀ» ³ªÁß¿¡ OID_TAPI_GET_CALL_INFO ¿äû¿¡ ÀÇÇØ¼­ ȸ¼öµÉ ¼ö ÀÖ´Â, ÁöÁ¤µÈ È£Ãâ ÀνºÅϽº¿¡ ¿¬°üÇÒ°ÍÀ» ¿ä±¸ÇÑ´Ù. NIC µå¶óÀ̹ö ÀÛ¼ºÀÚ°¡ ¹«½ÃÇÒ °ÍÀ» ¼±ÅÃÇÏ´Â ¿äûµéÀº NDIS_STATUS_TAPI_OPERATIONUNAVAIL »óÅ Äڵ带 °¡Áö°í ¿Ï¼ºµÇ¾î¾ß ÇÑ´Ù.

NIC µå¶óÀ̹ö´Â LINE_ADDRESS_CAPS ±¸Á¶Ã¼¿¡ ÀÖ´Â ulAddrCapFlags ¸â¹ö¿¡ Àִ°Íó·³ ¸î¸îÀÇ OID_TAPI_GET_XXX ¿äûµé¿¡ ´ëÇÑ ±¸Á¶Ã¼¿¡ Àִ ƯÁ¤ ºñÆ®µéÀ» ¼³Á¤Çϰí Áö¿òÀ¸·Î½á, ¶óÀÎ, ÁÖ¼Ò ¶Ç´Â È£Ãâ »óÅ¿¡ ÀÇÁ¸ÇÏ´Â ½Ã°£ ³Ñ¾î·Î ´Ù¾çÇÒÁö ¸ð¸£´Â ±×°ÍÀÌ Áö¿øÇÏ´Â ¿äûµéÀ» ¾Ë¸± ¼ö ÀÖ´Ù.

LINE_ADDRESS_CAPS ÀÇ ¼±¾ð°ú WAN ¹Ì´ÏÆ÷Æ®µéÀÌ TAPI »óŸ¦ À¯ÁöÇÏ´Â ´Ù¸¥ ½Ã½ºÅÛ-Á¤ÀÇµÈ ±¸Á¶Ã¼¿¡ ´ëÇØ¼­´Â ndistapi.h¸¦ ºÁ¶ó. ÀÌ·¯ÇÑ ±¸Á¶Ã¼µé¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸´Â Win32 SDK¸¦ ºÁ¶ó.

TAPI Type VAR_STRING

¸î¸îÀÇ OID_TAPI_XXX ¿¡ ´ëÇØ¼­, ¹Ì´ÏÆ÷µå´Â OID-ƯÁ¤ ±¸Á¶Ã¼·ÎµÈ(structured) Á¤º¸ ¹öÆÛ¿¡ ÁÖ¾îÁø´Ù. Çϳª ÀÌ»óÀÇ ÀÌ·¯ÇÑ TAPI ±¸Á¶Ã¼µéÀº ¾Æ·¡¿¡ Á¤ÀÇµÈ ¶ÇÇÑ ±¸Á¶Ã¼·ÎµÈ ¹öÆÛÀΠŸÀÔ VAR_STRING ÀÇ ¸â¹ö¸¦ °¡Áø´Ù.


typedef struct _VAR_STRING {

    ULONG  ulTotalSize;

    ULONG  ulNeededSize;

    ULONG  ulUsedSize;

    ULONG  ulStringFormat;

    ULONG  ulStringSize;

    ULONG  ulStringOffset;

} VAR_STRING, *PVAR_STRING;

ÀÌ·¯ÇÑ ±¸Á¶Ã¼ÀÇ ¸â¹öµéÀº ¾Æ·¡ÀÇ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù.:

ulTotalSize
¹öÆÛµÈ ½ºÆ®¸µÀ» Æ÷ÇÔÇÏ´Â ¹öÆÛÀÇ ¹ÙÀÌÆ® Àüüũ±â.

ulNeededSize
ƯÁ¤ÇÑ ½ºÆ®¸µÀ» Æ÷ÇÔÇϱâÀ§Çؼ­ ÇÊ¿äÇÑ ¹öÆÛÀÇ ¹ÙÀÌÆ® Å©±âµé. ¿¹¸¦µé¸é, ¸¸¾à ÇÁ·ÎÅäÄÝ-Áö¿øµÈ ¹öÆÛ°¡ ³Ê¹« ª¾Æ¼­ ¿äûµÈ ½ºÆ®¸µÀ» Æ÷ÇÔÇÒ ¼ö ¾ø´Ù¸é ¾Æ·¡ÀÇ µå¶óÀ̹ö´Â ÀÌ °ªÀ» ¼³Á¤ÇÑ´Ù.

ulUsedSize
½ÇÁ¦ÀûÀ¸·Î »ç¿ëµÈ ÁÖ¾îÁø ¹öÆÛÀÇ ¹ÙÀÌÆ® ¼ö.

ulStringFormat
¾î¶»°Ô ¹öÆÛµÈ ½ºÆ®¸µÀÌ ¾Æ·¡ÁßÀÇ Çϳª·Î ÇØ¼®µÇ¾î¾ßÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÑ´Ù.
STRINGFORMAT_ASCII
STRINGFORMAT_DBCS
STRINGFORMAT_UNICODE
STRINGFORMAT_BINARY

ulStringSize
ÁÖ¾îÁø ¹öÆÛµÈ ½ºÆ®¸µ¿¡ ÀÖ´Â ¹ÙÀÌÆ® ¼ö.

ulStringOffset
½ºÆ®¸µÀÌ ½ÃÀÛ¿¡¼­ ÀÌ ¹öÆÛ³»ÀÇ ¿É¼Â

¾Æ·¡ÀÇ ¼½¼ÇµéÀº ¾ÕÀÇ Â÷Æ®¿Í ±×µéÀÇ ¿¬°üµÈ TAPI ±¸Á¶Ã¼¿¡ ÀÖ´Â ¸®½ºÆ®µÈ OID_XXX¸¦ ¼³¸íÇÑ´Ù. ¸¸¾à ÀÖ´Ù¸é, ´õ ÃæºÐÈ÷