无法使用RFCOMAPILIb发送传真

时间:2014-04-19 12:30:46

标签: fax rightfax

我们正在尝试使用RFCOMAPILIb.dll使用以下代码发送传真(我们从堆栈溢出本身获取样本)

RFCOMAPILib.FaxServerClass faxserver = new RFCOMAPILib.FaxServerClass();
faxserver.ServerName = "ServerName";
faxserver.Protocol = RFCOMAPILib.CommunicationProtocolType.cpNamedPipes;
faxserver.UseNTAuthentication = RFCOMAPILib.BoolType.True;
faxserver.OpenServer();

RFCOMAPILib.Fax fax = (RFCOMAPILib.Fax) faxserver.get_CreateObject(RFCOMAPILib.CreateObjectType.coFax);

// set up your 'fax' object the way you want it, below is just some sample options
fax.ToName = "dummy";
fax.ToFaxNumber = "dummy";
fax.ToVoiceNumber = "dummy";
fax.ToCompany = "dummy";
fax.FromName = "My Company";
fax.FromVoiceNumber = "dummy";

fax.Send();

string status=fax.faxstatus.tostring();

我们将faxstatus作为110。 用户无法接收传真。

知道可能是什么问题。我们是否需要在客户端计算机上安装特定于正确传真的任何软件。在同一台机器上我们可以使用安装了正确传真客户端后提供的UI发送传真,因此我们不会认为端口,防火墙等存在任何问题。任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

致电后,

fax.Send()

然后您应该执行以下操作:

RFHandle = fax.Handle()

然后,RFHandle将允许您访问服务器本身上的CREATED FAX(您最初创建的传真对象,在您呼叫fax时不会更新。发送,除了您要检索RightFax分配的句柄)。 / p>

然后,您可以定期使用此RFHandle从RightFax服务器获取当前版本的传真对象,其中包括传真的当前状态。例如,发送传真后,请等待几秒钟(RightFax需要一点时间来生成传真图像)并致电...

fax = faxserver.fax(RFHandle)

这将使用此传真的当前值填充您的传真对象。然后,您可以通过....检查其状态。

Status = fax.FaxStatus

(各种FaxStatus值在RFCOMAPILIB.FaxStatusType下定义)

您的状态将初始为不完整,然后是NeedsFCS(Coversheet转换),并且根据实际发送计划发送,发送和最终DoneOK和DoneFailure。还有一个属性,

fax.FaxErrorCode

如果你有FaxStatus = DoneFailure,FaxErrorCode会为你提供更具体的信息,说明传真无法发送的原因。

在您的示例中要指出的最后一件事是,您没有设置fax.OwnerId。这将表明传真将在何种帐户中发送。从上面,它将通过与您的NT帐户关联的帐户发送。这可能是您所希望的,但OwnerID属性可以允许您使用其他帐户(将需要权限/权限)。

注意:如果您希望等到发送传真(以便知道是否成功),您应该在每次通话之间加上延迟,传真= faxserver.fax(RFHandle)您必须这样做每次呼叫以获取传真的更新。如果您要发送传真(它未设置为保留以进行预览,并且该帐户未设置为保留以供审批),建议使用30秒至1分钟的休眠间隔(除非您使用FoIP,传真通过IP)。通过电话线发送传真页面需要时间,每页大约1分钟是一般估计,记住,不仅是您的传真服务器,还有接收传真机。您的实际里程可能会有所不同。