地址
地址的概念是大多数通信操作的核心。 地址表示网络上的位置。 将地址本地分配给线路或通道通常发生在服务提供商安装期间,但稍后可以修改。 有关相关过程的详细信息,请参阅 Microsoft 提供的服务提供商的操作系统资源工具包和非 Microsoft 产品的服务提供商文档。
单个地址可由多个线路设备共享。 不同的交换机供应商对此概念有不同的名称,例如地址桥接、多外观目录编号 (MADN) 或桥接外观。 共享地址上的传入呼叫在与该地址关联的所有线路上提供。 有关 TAPI 识别的配置的说明,请参阅 LINEADDRESSSHARING_常量 。
地址本身是一个字符串,用于标识网络上的位置。 对于电话网络,地址是包含国家或国际代码的电话号码。 如果网络是基于 IP 的,则地址可能是 IP 地址。 有关 TAPI 定义的地址类型,请参阅 LINEADDRESSTYPE_常量 。 服务提供商可以定义其他地址类型。
Address-Related功能和消息
不同的地址具有不同的特性、功能和状态。 服务提供商是此类信息的来源。 TAPI 的设备查询功能、状态和事件报告机制为应用程序提供了管理地址的信息。
应用程序通过处理来自 TAPI 的事件或使用查询操作来获取此信息。 这允许应用程序考虑诸如给定地址是否支持特定功能(如 park)等因素。
TAPI 2.x: 应用程序调用 lineGetAddressCaps 函数来确定每个地址的电话功能,然后在 LINEADDRESSCAPS 数据结构中接收此信息。 以类似的方式,应用程序可以为线路设备调用 lineGetDevCaps ,以确定分配给线路的地址数以及其他信息。
TAPI 3.x: 应用程序使用 地址对象接口 获取有关地址功能和事件的信息。
在电子通讯簿中存储电话号码
许多用户通过从通讯簿中选择其姓名,选择拨打人员、传真机、公告板和其他实体。 实际拨打的号码取决于用户的地理位置以及要使用的线路设备的连接方式。 例如,台式计算机可以访问两条线路,一条线路连接到 PBX,另一条线路连接到电话公司的中央办公室。 向同一方发出呼叫时,可能必须使用不同的号码。 (例如,若要通过 PBX 拨号,计算机可能需要拨打“9”前缀才能获取外部线路,或者可能需要为通过中央办公室进行的呼叫使用不同的前缀。) 或者,用户可能从便携式计算机拨打电话,并希望使用单个静态通讯簿,即使从不同的位置或电话环境呼叫也是如此。 TAPI 的地址转换功能可让用户通知计算机呼叫的当前位置和所需的线路设备。 然后,TAPI 处理任何拨号差异,无需更改用户的通讯簿。 应用程序使用 地址转换 将地址从 规范地址 格式转换为 可拨号地址 格式。
相关主题是国际呼叫进度监视的处理,即侦听拨号音、特殊信息音、忙碌信号和回响音等声音的过程,以确定呼叫 的状态 (通过网络) 的进度。 由于呼叫进度音的节奏和频率因国家或地区而异,因此服务提供商必须知道在进行国际传出呼叫时要遵循的呼叫进度。 因此,应用程序在发出传出呼叫时指定目标国家或地区代码。
规范地址
规范地址格式旨在成为通用常量目录编号。 因此,通讯簿中的数字最好使用规范格式进行存储。
以下详细信息涉及被视为规范的电话地址。
规范电话地址是具有以下结构的文本字符串:
+ CountryCode Space [ (AreaCode) Space] SubscriberNumber | Subaddress ^ Name CRLF ...
下表描述了此结构的组件。
组件
含义
+
等效于十六进制 2B。 指示其后面的数字使用规范格式。
CountryCode
大小可变的字符串,包含一个或多个数字“0”到“9” (十六进制 30 到 39,包括) 。 CountryCode 由以下空格分隔。 它标识地址所在的国家或地区。
Space
恰好一个空格字符 (十六进制 20) 。 它用于分隔地址的 CountryCode 部分的结尾。
AreaCode
大小可变的字符串,包含零个或多个数字“0”到“9” (十六进制 30 到 39,包括) 。 AreaCode 是地址的区号部分,是可选的。 如果区号存在,则其前面必须正好有一个左括号字符 (28) ,后跟一个右括号字符 (29) 和一个空格字符 (20) 。
SubscriberNumber
大小可变的字符串,包含一个或多个数字“0”到“9” (十六进制 30 到 39,包括) 。 它还可能包含其他格式字符,包括可拨号地址格式中所述的任何拨号控制字符:
字符
十六进制编码
! #
$
*
,
?
@
Abcd
P
T
W
abcd
p
t
w
21 23
24
2A
2C
3F
40
41-44
50
54
77
61-64
70
74
79
订阅者编号不应包含仅用于分隔区号) 的左括号或右括号字符 (,也不应包含用于开始) 以下字段 (的“|”、“^”或 CRLF 字符。 大多数情况下,订阅者编号中的非数字字符仅包括空格、句点 (”。) 和短划线 (“-”) 。 从 lineTranslateAddress 函数返回的 DialableString 中省略订阅者编号中显示的任何允许的非digit 字符,但保留在 DisplayableString 中。
|
Hex (7C) 。 如果存在此可选字符,则其后面的信息一直指向下一个 + |^ CRLF 或规范地址字符串的末尾被视为子地址信息,与 ISDN 子地址一样。
子地址
包含子地址的可变大小字符串。 字符串由 + | 分隔^ CRLF 或地址字符串的末尾。 在拨号期间,子地址信息将传递给远程方。 它可以是 ISDN 子地址或电子邮件地址等内容。
^
Hex (5E) 。 如果存在此可选字符,则其后到下一个 CRLF 或规范地址字符串末尾的信息将被视为 ISDN 名称。
名称
一个大小可变的字符串,被视为名称信息。 名称由 CRLF 或规范地址字符串的末尾分隔,可以包含其他分隔符。 在拨号期间,名称信息将传递给远程方。
CRLF
十六进制 (0D) 后跟十六进制 (0A) ,是可选的。 如果存在,则表示此规范数字后面的另一个规范数字。 它用于将多个规范地址分隔为单个地址字符串的一部分, (反向多路复用) 。 例如,Microsoft Corporation 中main总机电话号码的规范表示形式为:
+1 (425) 882-8080
可拨号地址
可拨号地址格式是将地址传递给处理电话号码的服务提供商的形式。 以下详细信息涉及电话网络上的可拨号地址。
可拨号号码格式允许一次提供多个目标地址。 如果服务提供商通过设置对每个指定目标的调用,然后将信息流作为单个高带宽媒体流管理,来提供某种形式的反向多路复用,则此功能非常有用。 应用程序将此组呼叫视为单个呼叫,因为它只接收表示单个电话呼叫聚合的单个呼叫句柄。
还可以在应用程序级别支持反向多路复用。 为此,应用程序将设置一系列单独的调用并同步其媒体流。
子地址 是在 ISDN 线路上提供的一项功能,允许在拨号时使用比单个电话号码更多的信息。 此附加信息可以指定要拨打的单个电话分机,或者在计算环境中指定要发出警报的特定应用程序。 其他参数可以描述所请求连接的必需方面,例如速率和计时。
如果服务提供程序支持子地址,则应用程序会将此项包含在传递给需要子地址的任何操作的地址中。
可拨号电话地址包含部分寻址信息,本质上是部分导航。 任何不以“+”字符开头的输入字符串都假定不是规范格式,因此为可拨号地址格式,并且未修改地返回到应用程序。 可拨号地址是具有以下结构的文本字符串:
DialableNumber | 子地址 ^ 名字 CRLF...
下表中提供了此结构的组件。
组件 | 含义 |
---|---|
DialableNumber | 数字和修饰符 0-9 A-D * # , ! W w P p T t @ $ ? ;由 | 分隔^ CRLF 或可拨号地址字符串的末尾。 加号 (+) 是可拨号字符串中的有效字符。 它表示电话号码是完全限定的国际号码。 在 DialableNumber 中,请注意以下定义: 0-9 A-D *# 对应于 DTMF 和/或脉冲数字的字符。 |
! | 十六进制 (21) 。 指示hookflash (一半秒的 onhook,后跟一半秒的 offhook,然后继续) 插入拨号字符串中。 |
P p | Hex (50) 或 Hex (70) 。 指示脉冲拨号将用于其后面的数字。 |
T t | Hex (54) 或 Hex (74) 。 指示将音调 (DTMF) 拨号用于其后面的数字。 |
, | 十六进制 (27) 。 指示要暂停拨号。 暂停的持续时间特定于设备,可以从线路的设备功能中检索。 多个逗号可用于提供更长的暂停时间。 |
W w | Hex (57) 或 Hex (77) 。 大写或小写 W 指示只有在检测到拨号音后,拨号才继续。 |
@ | 十六进制 (40) 。 指示拨号是在拨号可拨号地址的其余部分之前“等待安静应答”。 这意味着等待至少一个回响音,然后等待几秒钟的沉默。 |
$ | 十六进制 (24) 。 指示拨打计费信息是为了等待“计费信号” (如信用卡提示音) 。 |
? | 十六进制 (3F) 。 指示在继续拨号之前将提示用户。 提供程序实际上不会执行提示,但存在“?”会强制提供程序拒绝字符串无效,从而提醒应用程序需要将其分解并提示用户进入两者之间。 |
; | 十六进制 (3B) 。 如果放置在部分指定的可拨号地址字符串的末尾,则表示可拨号号码信息不完整,稍后将提供更多地址信息。 仅允许在地址的 DialableNumber 部分中使用“;”组件。 |
| | 十六进制 (7C) ,是可选的。 如果存在,则后续信息一直指向下一个 + |^ CRLF 或可拨号地址字符串的末尾被视为子地址信息, (ISDN 子地址) 。 |
子地址 | 包含子地址的可变大小字符串。 字符串由下一个 + | 分隔^ CRLF 或地址字符串的末尾。 拨号时,子地址信息将传递给远程方。 可以是 ISDN 子地址、电子邮件地址等。 |
^ | 十六进制 (5E) ,是可选的。 如果存在,则下一个 CRLF 或可拨号地址字符串末尾的信息将被视为 ISDN 名称。 |
名称 | 一个大小可变的字符串,被视为名称信息。 名称由 CRLF 或可拨号地址字符串的末尾分隔。 拨号时,名称信息将传递给远程方。 |
CRLF | 十六进制 (0D) 后跟十六进制 (0A) 。 如果存在,此可选字符表示另一个可拨号号码位于此号码之后。 它用于将多个可拨号地址分隔为单个地址字符串的一部分, (用于反向多路复用) 。 |
地址转换可用于将地址从规范格式转换为可拨号格式。