  In a call center, staffing decisions must be made before the call arrival
rate is known with certainty. Then, once the arrival rate becomes known, the
call center may be over-staffed, in which case staff are being paid to be idle,
or under-staffed, in which case many callers hang-up in the face of long wait
times. Firms that have chosen to keep their call center operations in-house can
mitigate this problem by co-sourcing; that is, by sometimes outsourcing calls.
Then, the required staffing $N$ depends on how the firm chooses which calls to
outsource in real-time, after the arrival rate realizes and the call center
operates as a $M/M/N+M$ queue with an outsourcing option. Our objective is to
find a joint policy for staffing and call outsourcing that minimizes the long
run average cost of this two-stage stochastic program when there is a linear
staffing cost per unit time and linear costs associated with abandonments and
outsourcing.
  We propose a policy that uses a square-root safety staffing rule, and
outsources calls in accordance with a threshold rule that characterizes when
the system is "too crowded". Analytically, we establish that our proposed
policy is asymptotically optimal, as the mean arrival rate becomes large, when
the level of uncertainty in the arrival rate is of the same order as the
inherent system fluctuations in the number of waiting customers for a known
arrival rate. Through an extensive numerical study, we establish that our
policy is extremely robust. In particular, our policy performs remarkably well
over a wide range of parameters, and far beyond where it is proved to be
asymptotically optimal.
