I am using the new Twilio Programmable Voice SDK with Swift and Python. I have begun with the respective quick starter projects, and for the most part things work. I'm able to get a valid access token, I'm able to successfully create a call, and I am even able to receive the call. The problem is on the caller side of the house.

When I try to make a call via the Swift SDK the call is disconnected before it ever starts to ring on the other end.

I have read in the Twilio docs that the `client.calls.create` function will immediately return a status of complete if you do not handle the `status_callback` event. I have tried to add this but whenever I do I get an error saying the the key `status_callback` is not a valid parameter for the `client.calls.create` function. Also, I cannot find any examples anywhere of actually how to handle the call status.

My question is what in the wold am I doing wrong here? Any help would be greatly appreciated.

Here is my Python code

```
@app.route('/outgoing', methods=['GET', 'POST'])
def outgoing():

  account_sid = os.environ.get("ACCOUNT_SID", ACCOUNT_SID)
  api_key = os.environ.get("API_KEY", API_KEY)
  api_key_secret = os.environ.get("API_KEY_SECRET", API_KEY_SECRET)

  from_number = [HARD_CODED_PHONE_NUMBER_FOR_CALLER]
  to_number = [HARD_CODED_PHONE_NUMBER_FOR_RECIPIENT]

  client = Client(api_key, api_key_secret, account_sid)
  call = client.calls.create(url='http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient', to=to_number, from_=from_number)

  # return str(call.sid)
  resp = twilio.twiml.Response()
  resp.say("Thank you for calling");
  return str(resp)

```

Here is my relevant iOS code. Please bear in mind that this is NOT my full source. I have only provided what should be necessary in this event. My full source does include handling the registry and invite delegates. I also did not include my source that shows/hides my active call UI as there are no problems with that. This is simply to show how I am placing a call and receiving the call complete delegate.

```
class VoiceManager: NSObject, PKPushRegistryDelegate, TVONotificationDelegate, TVOCallDelegate, AVAudioPlayerDelegate {

    //MARK: - Singleton

    static let sharedManager = VoiceManager()

    //MARK: - Private Constants

    private let baseURLString = [MY_WEBAPP_ENDPOINT]
    private let accessTokenEndpoint = "/accessToken"

    //MARK: - Private Variables

    private var deviceTokenString:String?

    private var callInvite: TVOCallInvite?
    private var call: TVOCall?
    private var status: VoiceStatus = .idle

    //MARK: - Getters

    private func fetchAccessToken() -> String? {

        guard let accessTokenURL = URL(string: baseURLString + accessTokenEndpoint) else {
            return nil
        }

        return try? String.init(contentsOf: accessTokenURL, encoding: .utf8)
    }

    func placeCall(withParameters params: VoiceParameters, completion: @escaping (_ success: Bool, _ error: VAError?) -> Void) {

        if (call != nil) {
            call?.disconnect()
            completion(false, .phoneCallInProgress)
            status = .callEnded
            hideActiveCallUI()

        } else {

            guard let accessToken = fetchAccessToken() else {
                completion(false, .phoneAccessTokenFetchFailed)
                return
            }

            guard let paramsDict = params.toDictionary() else {
                completion(false, .phoneAccessTokenFetchFailed)
                return
            }

            playOutgoingRingtone(completion: { [weak self] in

                if let strongSelf = self {

                    strongSelf.call = VoiceClient.sharedInstance().call(accessToken, params: [:], delegate: strongSelf) //NOTE: The params here are not necessary as the phone numbers for now are hard coded on the server

                    if (strongSelf.call == nil) {
                        strongSelf.status = .callEnded
                        completion(false, .phoneCallFailed)
                        return

                    } else {
                        strongSelf.status = .callConnecting
                        self?.showActiveCallUI(withParameters: params)
                        completion(true, nil)
                    }
                }
            })
        }
    }

    // MARK: TVOCallDelegate
    func callDidConnect(_ call: TVOCall) {

        NSLog("callDidConnect:")

        self.call = call
        status = .inCall

        routeAudioToSpeaker()
    }

    func callDidDisconnect(_ call: TVOCall) {

        NSLog("callDidDisconnect:")

        playDisconnectSound()

        self.call = nil
        status = .callEnded

        hideActiveCallUI()
    }

    func call(_ call: TVOCall, didFailWithError error: Error) {

        NSLog("call:didFailWithError: \(error)");

        self.call = nil
        status = .callEnded
        hideActiveCallUI()
    }
}

```