0

有没有办法使用.NET将传真从 RigthFax 服务器转发到另一台 RigthFax 服务器?

4

2 回答 2

0

我发现使用COM .NET API无法做到这一点。此 API 仅适用于一台 RightFax 服务器...

于 2011-11-17T19:10:19.643 回答
0

如果您想移动传真,您需要在第二台服务器上创建一个传真(具有相同的属性),然后在第一台服务器上删除该传真。

这是一个手动过程,在代码中逐步进行,但可以完成。

您将需要两个单独的传真服务器对象(每个服务器一个)。

对于faxserver1(传真源),创建一个传真对象:fax1,其中包含传真(您可以通过传真的句柄获取它)。此外,您还需要下载传真图像(这将是本地驱动器上的 TIF 文件)。

对于目标传真服务器(目标),您将需要创建另一个传真对象,fax2(但您不会在传真服务器 2 中搜索传真)。

使用来自fax1 的所有属性值填充fax2(例如ToName、ToFaxNumber、ToCompany、BillingInfo1 等...)。此外,将属性 Hold for preview 设置为 true。不要忘记相应地设置 OwnerId!为简单起见,将 HasCoversheet 设置为 FALSE(实际的封面仍将被复制,只是在 FaxUtil 中无法识别为封面)。将 TIF 文件(来自源传真,这将包括封面,如果存在并且这是出站传真)到 AddDoc 集合,然后调用 Fax2.Send()。

发送调用后,调用:RFHandle2 = Fax2.Handle()

这将使您的新服务器创建一个与原始传真相同的出站传真。[ 等待 30 秒(在循环内)并调用

Fax2 = FaxServer2.Fax(RFHandle2)

检查 Fax2.FaxStatus 并查看它是否为 HeldForPreview(如果创建传真有任何问题,您可能还需要检查错误代码)。

设置为 HeldForPreview 后,您现在可以设置以下内容(如果适用)

Fax2.IsRecievedEx = Fax1.IsRecieved(是的,您可以将呼出传真更改为呼入传真!)

Fax2.FaxStatusEx = Fax1.FaxStatus

Fax2.FaxErrorCodeEx = Fax1.FaxErrorCode

Fax2.UniqueID = Fax1.UniqueID(您可能希望也可能不希望这样做 - 这个值实际上不必在服务器上是唯一的)。

Fax2.Save(False) - False 值是为了不踢传真!

如果您没有收到任何异常,则可以删除原始传真

传真1.删除()

注意:传真历史不会被复制。您只有传真记录及其图像的副本。

您可以采取一些技巧(假设您具有必要的 O/S 权限)来保持使用封面的概念(如果这最初是出站传真),但这在这里解释得有点多。我们有软件可以在我们的工作流程产品中自动执行此类工作。

于 2015-03-03T15:12:06.567 回答