function endCall(bytes32 callHash, uint amount, uint8 _v, bytes32 _r, bytes32 _s) public {
    
    address recipient = recipientsMap[callHash];

    
    require(recipient == msg.sender);

    bytes32 endHash = keccak256('Experty.io endCall:', recipient, callHash, amount);
    address caller = ecrecover(endHash, _v, _r, _s);

    
    require(activeCall[caller] == callHash);

    uint maxAmount = amount;
    if (maxAmount > balances[caller]) {
      maxAmount = balances[caller];
    }

    
    recipientsMap[callHash] = 0x0;
    
    activeCall[caller] = 0x0;

    settlePayment(caller, msg.sender, maxAmount);
  }