启动会话

应用程序为启动通信会话提供的主要信息包括地址类型媒体类型和目标地址

目标地址可能需要进行地址转换,以便将用户输入的信息转换成特定地址类型的正确格式。 例如,电子地址簿中规范格式的电话号码需要翻译成可拨入格式。

如果服务提供商支持,某些会话可能需要特殊设置参数。 例如,ISDN TSP 可以传输用户-用户信息,而某些 MSP 则需要有关媒体流方向的信息。 请参阅会话信息,查看可能设置或获取的有关会话的数据。

在启动会话后,TAPI 将使用初始化时设置的事件通知机制向应用程序通报调用进度。

TAPI 2.x: 应用程序使用 lineMakeCall 函数来启动会话。 lineTranslateAddress 函数用于在需要时执行地址转换。

调用设置参数可存储在 LINECALLPARAMS 数据结构中,然后将指向该结构的指针用作 lineMakeCall 的参数。 如果没有向 lineMakeCall 提供 LINECALLPARAMS 结构,则会请求使用一组默认值的默认 POTS 语音级调用。

如果会话设置成功,就会向应用程序返回一个带有 owner privileges 的调用句柄,而 TAPI 会向应用程序发送 LINE_CALLSTATE 消息,其中包含有关调用进度的信息。 应用程序通常使用这些消息向用户显示状态报告。

TAPI 3.x: 应用程序通过调用 ITAddress::CreateCall 方法,在能够处理所需地址类型和媒体类型的地址上启动通信会话。 如果地址公开 ITTerminalSupport 接口,终端就会被选入调用对象的媒体流。 有关此过程的说明,请参阅进行呼叫代码示例。

呼叫设置参数可使用 ITCallInfo 接口公开的方法进行存储或更改。

如果会话设置成功,TAPI 将返回一个 ITBasicCallControl 接口指针,用于进一步的会话操作,或获取一个 ITCallInfo 接口指针,用于获取更多的会话信息。 ITCallStateEvent 接口处理 TAPI 调用状态事件。

注意

TAPI 不应用于传真传输。 取而代之的是使用 MAPI (Microsoft Messaging API) 提供的函数。

 

地址转换

最终用户或服务器应用程序存储地址的格式可能与特定服务提供商的需求不兼容。 例如,电话号码可以采用规范格式存储在电子地址簿中,但大多数处理电话号码的服务提供商要求采用可拨入格式

TAPI 提供地址转换操作,帮助应用程序向 TSP 显示正确的地址类型。 服务提供商向 TAPI 指定其支持的地址类型,无需进行任何形式的地址转换。

TAPI 2.x: 请参阅 lineTranslateAddress

TAPI 3:请参阅 ITAddressTranslationITAddressTranslationInfo

收费列表

在北美的一些地方,所有拨打当地区号的电话都是本地电话。 在其他地区,有些拨打本地区号的电话属于长途电话,需要加 “1”作为前缀才能拨通。 地址的前三位数字(前缀)决定了本地区号内的呼叫是否为收费呼叫。

收费列表是本地区号中的前缀列表,其地址必须作为长途地址拨打,并收取长途费用。

收费列表与服务提供商或不接入电话网络的应用程序无关。

TAPI 2.x: 请参阅 lineTranslateAddressLINETRANSLATEOUTPUT 结构中的 LINETRANSLATERESULT_INTOLLLIST 和 LINETRANSLATERESULT_NOTINTOLLLIST 位)、lineSetTollList

TAPI 3: 请参阅 ITAddressTranslation::TranslateAddressITAddressTranslationInfo::get_TranslationResults