*** id: a0665d13-69b4-4337-96d9-d4d570c647f7 title: SignalWire.Relay.CallingAPI slug: /dotnet/reference/calling max-toc-depth: 3 ---------------- [dialresult]: /docs/server-sdk/v2/dotnet/reference/calling/results/dial [phonecall]: /docs/server-sdk/v2/dotnet/reference/calling/call This represents the API interface for the Calling Relay Service. This object is used to make requests related to managing end to end calls. ## Methods ### DialPhone Make an outbound PhoneCall and waits until it has been answered, times out, busy, or some other error occurs. **Parameters** | Parameter | Type | Required | Description | | --------- | ------ | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | | `to` | string | required | The phone number of the party you are attempting to call. | | `from` | string | required | The phone number the call is coming from.
*Must be a SignalWire number or SIP endpoint that you own.* | | `timeout` | int | optional | The time, in seconds, the call will ring before going to voicemail.
*Default: 30* | **Returns** [`SignalWire.Relay.Calling.DialResult`][dialresult] - The result object to interact with. **Examples** > Make an outbound PhoneCall and obtain the Call object after it was answered. ```csharp DialResult resultDial = client.Calling.DialPhone("+1XXXXXXXXXX", "+1YYYYYYYYYY", timeout: 30); if (resultDial.Successful) { // Call has been answered, it is available through resultDial.Call } ``` ### NewPhoneCall Create a new `PhoneCall` object. The call has not started, but you can attach event listeners on it. **Parameters** | Parameter | Type | Required | Description | | --------- | ------ | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | | `to` | string | required | The phone number of the party you are attempting to call. | | `from` | string | required | The phone number the call is coming from.
*Must be a SignalWire number or SIP endpoint that you own.* | | `timeout` | int | optional | The time, in seconds, the call will ring before going to voicemail.
*Default: 30* | **Returns** [`SignalWire.Relay.Calling.PhoneCall`][phonecall] - A new call object. **Examples** > Create a new PhoneCall object and Dial it. ```csharp PhoneCall call = client.Calling.NewPhoneCall("+1XXXXXXXXXX", "+1YYYYYYYYYY", timeout: 30); call.OnEnded += (a, c, e, p) => { // Call has been ended }; DialResult resultDial = call.Dial(); if (resultDial.Successful) { call.Hangup(); } ```